首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于QLabelElement,QuickDialog值太长

对于QLabelElement,QuickDialog值太长
EN

Stack Overflow用户
提问于 2012-02-18 23:00:27
回答 2查看 601关注 0票数 0

嗨,我有一个QLabelElement,并像下面这样设置它的值(与示例应用程序中的相同):

代码语言:javascript
复制
[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中看起来真的很难看,因为显然文本太长了:

我怎么才能修复它呢?我正在考虑截断文本之类的东西,但我不知道我可以在哪里设置它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-20 01:42:32

好吧,看起来没有简单的方法来解决我的问题。解决方案是将QTableViewCell类定制化。

我重写了它,所以textlabel是占主导地位的。

代码语言:javascript
复制
- (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即可。

代码语言:javascript
复制
 if (valueSize.width > self.contentView.bounds.size.width/2) {
        valueSize.width = self.contentView.bounds.size.width/2;
    }
票数 0
EN

Stack Overflow用户

发布于 2012-06-15 17:38:13

如果您想换行一个值文本,请查看my change

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9342278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档