展開label,利用YYText實現文字顯示不完末尾添加全文


效果圖:

操作

先github下載<YYText>文件導入,

代碼如下:

#import "ViewController.h"
#import "YYLabel.h"
#import "NSAttributedString+YYText.h"
#import <UIKit/UIKit.h>

@interface ViewController ()
    
@property (nonatomic,strong) YYLabel *label;;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    NSMutableAttributedString *text = [NSMutableAttributedString new];
    UIFont *font = [UIFont systemFontOfSize:16];
    
    // 添加文本
    NSString *title = @"dwwdqwddqdqdqdqwdqdqwdqwdqdqdqdqwdqwdqdqdqwdqdqwdqdqdqdqdqdqwdq當前的群無多群無多群無多群無多群無多群多群無多群無多群無多群無多群多群多群多群當前的群無多群多群無多群多群多群多群多群多群多群多群的權威的權威的期望多無群多群無多群多群多群多群無多群無多群無多群無多群無多群無多群多群無多群無多群多群無多群多群無多無多無群多多群無多群多群多群多群無多群多無!";
    
    [text appendAttributedString:[[NSAttributedString alloc] initWithString:title attributes:nil]];
    
    text.yy_font = font ;
    _label = [YYLabel new];
    _label.userInteractionEnabled = YES;
    _label.numberOfLines = 0;
    _label.textVerticalAlignment = YYTextVerticalAlignmentTop;
    _label.frame = CGRectMake(40,60, self.view.frame.size.width-80,150);
    _label.attributedText = text;
    [self.view addSubview:_label];
    
    _label.layer.borderWidth = 0.5;
    _label.layer.borderColor = [UIColor colorWithRed:0.000 green:0.463 blue:1.000 alpha:1.000].CGColor;
    
    // 添加全文
    [self addSeeMoreButton];
}

#pragma mark - 添加全文
- (void)addSeeMoreButton {
    
    __weak __typeof(self) weakSelf = self;
    
    NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString:@"...全文"];

    YYTextHighlight *hi = [YYTextHighlight new];
    [hi setColor:[UIColor colorWithRed:0.578 green:0.790 blue:1.000 alpha:1.000]];
    
    hi.tapAction = ^(UIView *containerView,NSAttributedString *text,NSRange range, CGRect rect) {
// 點擊全文回調 YYLabel *label = weakSelf.label; [label sizeToFit]; }; [text yy_setColor:[UIColor colorWithRed:0.000 green:0.449 blue:1.000 alpha:1.000] range:[text.string rangeOfString:@"全文"]]; [text yy_setTextHighlight:hi range:[text.string rangeOfString:@"全文"]]; text.yy_font = _label.font; YYLabel *seeMore = [YYLabel new]; seeMore.attributedText = text; [seeMore sizeToFit]; NSAttributedString *truncationToken = [NSAttributedString yy_attachmentStringWithContent:seeMore contentMode:UIViewContentModeCenter attachmentSize:seeMore.frame.size alignToFont:text.yy_font alignment:YYTextVerticalAlignmentCenter]; _label.truncationToken = truncationToken; }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM