UILabel开发中遇到的好用的

根据文字计算UILabel的size

- (CGSize)sizeWithAttributes:(nullable NSDictionary<NSString *, id> *)attires

例子:

 // 获取文本
    NSString *string = @"ScofieldTang文字滚动ScofieldTang文字滚动ScofieldTang文字滚动";
    // 初始化label
    UILabel *label      = [UILabel new];
    label.text          = string;
    label.font          = [UIFont systemFontOfSize:16];
    
    // 计算尺寸[label.text sizeWithFont:label.font];//已抛弃
    CGSize size         = [label.text  sizeWithAttributes:@{NSFontAttributeName : label.font}];
    label.frame         = (CGRect){CGPointZero, size};

UILabel位子滚动播放(跑马灯)

// 获取文本
    NSString *string = @"ScofieldTang文字滚动ScofieldTang文字滚动ScofieldTang文字滚动";
    
    // 初始化label
    UILabel *label      = [UILabel new];
    label.text          = string;
    label.font          = [UIFont systemFontOfSize:16];
    
    // 计算尺寸[label.text sizeWithFont:label.font];//已抛弃
    CGSize size         = [label.text  sizeWithAttributes:@{NSFontAttributeName : label.font}];

    label.frame         = (CGRect){CGPointZero, size};
    
    UIScrollView *showView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, kScreenW * 0.3, 44)];
    
    showView.contentSize   = size;
    showView.showsHorizontalScrollIndicator = NO;
    [showView addSubview:label];
    //[self.view addSubview:showView];
    self.navigationItem.titleView = showView;
    // 动画 判断文字宽度大于scrollView宽度时开启动画
    if (size.width > showView.frame.size.width) {
        [UIView animateKeyframesWithDuration:5
                                       delay:0
                                     options:UIViewAnimationOptionRepeat //动画重复的主开关
         |UIViewAnimationOptionAutoreverse //动画重复自动反向,需要和上面这个一起用
         |UIViewAnimationOptionCurveLinear //动画的时间曲线,滚动字幕线性比较合理
                                  animations:^{
                                      // 计算移动的距离
                                      CGPoint point = showView.contentOffset;
                                      point.x = size.width - 200;
                                      showView.contentOffset = point;
                                  }
                                  completion:^(BOOL finished) {
                                      
                                  }];
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,305评论 4 61
  • 深秋夜晚的钟声敲响 沿着城市的轨道散漫的去到一个地方 长椅上积满了落叶和灰尘 那棵狰狞的树在随着秋风老去 奏起悠扬...
    HEALER变成了那只狗阅读 299评论 0 0
  • “三寸之舌,强于百万雄兵;一人之辩,重于九鼎之宝”。 六国合纵天下安息,秦国远望着东方的六国,如狼似虎一般死死...
    苍郁先生阅读 1,043评论 0 3
  • 使我介然有知,行于大道,唯施是畏。大道甚夷,而民好径。朝甚除,田甚芜,仓甚虚;服文彩,带利剑,厌饮食,财货有余。是...
    暖阳_1332阅读 574评论 0 0
  • 什么是事件冒泡 当事件发生后,这个事件就要开始传播(从里到外或者从外向里)。 举个例子:我们为页面内body添加一...
    愿长睡不醒阅读 733评论 0 0