嗨,我有一个QLabelElement,并像下面这样设置它的值(与示例应用程序中的相同):
[s1 addElement:[[QLabelElement alloc]
initWithTitle:@"Long text long text long text long text"
Value:@"this is the value this is the value this is the value"]];但是现在这个元素在tableView中看起来真的很难看,因为显然文本太长了:

我怎么才能修复它呢?我正在考虑截断文本之类的东西,但我不知道我可以在哪里设置它。
发布于 2012-02-20 01:42:32
好吧,看起来没有简单的方法来解决我的问题。解决方案是将QTableViewCell类定制化。
我重写了它,所以textlabel是占主导地位的。
- (void)layoutSubviews {
[super layoutSubviews];
CGSize valueSize = CGSizeZero;
if (self.textLabel.text!=nil)
valueSize = [self.textLabel.text sizeWithFont:self.textLabel.font];
CGSize imageSize = CGSizeZero;
if (self.imageView!=nil)
imageSize = self.imageView.frame.size;
if (self.detailTextLabel.text ==nil) {
CGRect labelFrame = self.textLabel.frame;
self.textLabel.frame = CGRectMake(labelFrame.origin.x, labelFrame.origin.y,
self.contentView.bounds.size.width - imageSize.width - 20, labelFrame.size.height);
self.textLabel.backgroundColor = [UIColor greenColor];
}
else{
CGRect labelFrame = self.textLabel.frame;
self.textLabel.frame = CGRectMake(labelFrame.origin.x, labelFrame.origin.y,
valueSize.width, labelFrame.size.height);
}
CGRect detailsFrame = self.detailTextLabel.frame;
self.detailTextLabel.frame = CGRectMake(self.textLabel.frame.origin.x + valueSize.width,
detailsFrame.origin.y, self.contentView.bounds.size.width - valueSize.width -
imageSize.width - 20, detailsFrame.size.height);
}如果你有长标题和长值,那么你只需添加以下代码来平均分割den即可。
if (valueSize.width > self.contentView.bounds.size.width/2) {
valueSize.width = self.contentView.bounds.size.width/2;
}发布于 2012-06-15 17:38:13
如果您想换行一个值文本,请查看my change。
https://stackoverflow.com/questions/9342278
复制相似问题