QLabelElement的QuickDialog值太长

时间:2012-02-18 15:00:27

标签: objective-c ios uitableview

您好我有一个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中显得非常难看,因为显然文本太长了:

enter image description here

我该如何解决? 我正在考虑截断文本或其他内容,但我不知道我可以在哪里设置它。

2 个答案:

答案 0 :(得分:0)

好吧接缝没有简单的方法来解决我的问题。 解决方案是对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);

}

如果您同时拥有长标题和长值,则只需添加以下代码即可平均分割。

 if (valueSize.width > self.contentView.bounds.size.width/2) {
        valueSize.width = self.contentView.bounds.size.width/2;
    }

答案 1 :(得分:0)

如果要包装值文本, 请查看my change