使用show more或显示更少的链接展开或折叠标签文本

时间:2016-02-21 18:36:59

标签: ios swift

在IOS应用程序中,我在滚动视图中有一个标签,其中包含我在下面描述的属性

          self.detailMainLabel?.numberOfLines = 0
          self.detailMainLabel?.lineBreakMode = .ByWordWrapping
          self.detailMainLabel?.sizeToFit()

高度限制:

          Relation = Greater than or equal

当我运行应用程序时,标签会根据文本自动自动展开。 但是我想知道我能做些什么来实现"显示更多"或"显示更少"链接在文本标签的末尾以展开或缩小高度。

有任何想法或建议吗?

2 个答案:

答案 0 :(得分:8)

首先,您必须将行数设置为1或2,以便显示更多按钮。 像

for it in j:
    it['nation'] = u'malaysia'

然后显示更多按钮点击设置

self.detailMainLabel?.numberOfLines = 2
self.detailMainLabel?.lineBreakMode = .ByWordWrapping
self.detailMainLabel?.sizeToFit()

再次显示较少按钮单击将行数设置为2。 如果你使用一个按钮显示较少并显示更多也保持一个布尔标志。

答案 1 :(得分:0)

https://github.com/TTTAttributedLabel/TTTAttributedLabel

#import "TTTAttributedLabel.h"

IBOutlet TTTAttributedLabel * lblname;


// Expand Button Press
- (IBAction)btnforexpande:(id)sender
{
    if (expande == 1 ){

        NSString *strText = @“STRING”;
        NSAttributedString *attString = [[NSAttributedString alloc] initWithString:strText attributes:
                                         @{
                                           (id)kCTForegroundColorAttributeName : (id)[UIColor blackColor].CGColor,
                                           NSFontAttributeName : [UIFont boldSystemFontOfSize:13],
                                           }];
        lblname.text = attString;
        lblname.numberOfLines = 1;
        lblname.lineBreakMode=NSLineBreakByTruncatingTail;
        NSAttributedString *showMore = [[NSAttributedString alloc] initWithString:[NSString stringWithFormat:@"..+more"] attributes:
                                        @{
                                          NSForegroundColorAttributeName:[UIColor blackColor],
                                          NSBackgroundColorAttributeName:[UIColor colorWithRed:233.0f/255.0f green:233.0f/255.0f blue:233.0f/255.0f alpha:1.0f],
                                          NSFontAttributeName : [UIFont boldSystemFontOfSize:13],
                                          }];

        [lblname setAttributedTruncationToken:showMore];
        [lblname sizeToFit];

    }
    else{
        // Expand
        lblname.numberOfLines = 0;
        lblname.lineBreakMode=NSLineBreakByWordWrapping;
        CGSize sizeTitle1 = [lblcc.attributedText boundingRectWithSize:CGSizeMake(lblcc.frame.size.width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin context:nil].size;
        _lblccHight.constant = sizeTitle1.height;

    }
}