首页
学习
活动
专区
圈层
工具
发布

UILabel在开发中的常用功能总结

在项目开发中,我们经常会遇到在这样情形: 1、在一个UILabel 使用不同的颜色或不同的字体来体现字符串 在iOS 6 以后我们可以很轻松的实现这一点,官方的API 为我们提供了UILabel类的...iOS 在UILabel显示不同的字体和颜色"; labelStr.textColor = [UIColor lightGrayColor]; labelStr.font = [UIFont systemFontOfSize...attributes:attribtDic]; //赋值 label.attributedText = attribtStr; [self.view addSubview:label]; // label加中划线...添加中划线,表示为打折出售"; //中划线 NSDictionary *attribtDic2 = @{NSStrikethroughStyleAttributeName: [NSNumber numberWithInteger...有时文字的多少是不确定的,这时就需要我们判断这些文字的宽和高,以便于正确定义label的位置大小 NSString *layoutStr = @"iOS UILabel自适应宽度"; UILabel

1.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS AutoLayout全解

    Vertical Center in Container:对齐容器中的竖向中心 案例4 某个View距离在父View的右侧20 案例3中白色View上20 宽高和案例3中的宽高一样 并且对齐。...Manual Layout with UILabel 按照前面介绍的,我们需要创建C3.xib, C3类, T3ViewController类,Main.storyboard中拖入UITableViewController...StackView UIStackView是iOS9新引入的控件,它支持垂直和水平排列多个子视图(SubView)。...例如:水平放置三个按钮,等宽,并且按钮间的间隙为10,如果自己实现会比较麻烦,而使用UIStackView则很容易实现。...StackView属性 在理解StackView时,有几个属性需要理解: Axis: 这个属性是改变UIStackView中的排布方式的属性,其中有水平排布与垂直排布 Alignment:这个属性是其中子视图的位置摆布方式默认是填充摆布

    6.2K60

    iOS运用runtime全局修改UILabel的默认字体

    iOS运用runtime全局修改UILabel的默认字体 一、需求背景介绍         在项目比较成熟的基础上,遇到了这样一个需求,应用中需要引入新的字体,需要更换所有Label的默认字体,但是同时...乍看起来,这个问题确实十分棘手,首先项目比较大,一个一个设置所有使用到的label的font工作量是巨大的,并且在许多动态展示的界面中,可能会漏掉一些label,产生bug。...其次,项目中的label来源并不唯一,有用代码创建的,有xib和storyBoard中的,这也将浪费很大的精力。这种情况下,我们可能会有下面两种处理方式。...二、处理方式 1、使用框架         创建我们自己的BaseLabel类,在其中进行默认字体的设置,并且并不影响在使用过程中特殊设置字体的label,这种方式可以满足我们的需求,但是并不适于我们的场景...UILabel默认显示的字体,我们分别从init,initWithFrame和nib文件创建一个UILabel添加到视图上,不做任何其他的操作: UILabel * label = [[UILabel

    1.7K50

    制作一个类似苹果VFL(Visual Format Language)的格式化语言来描述类似UIStackView那种布局思路,并解析生成页面

    既然UIStackView已经提供了一种既先进又简洁的布局思路,为何不通过制作一个类似VFL这样的DSL语言来处理布局。...PartView布局相关属性 width:UILabel和UIImage这样有固定大小的可以不用设置,会按照固定大小的来。 height:有固定大小的可以不用设置。...解析格式化语言 解析过程的第一步采用扫描scanner程序将字符串按照分析符号表将字符流序列收集到有意义的单元中。 第二步将这些单元逐个归类到对应的类别中。...比如解析到“()”里内容时就将其归类到对应的AssembleView的属性或者PartView的属性类别中。...PartView属性设置完成后会在STMPartView这个类中先决定对应的视图控件,并将STMPartMaker里的属性都设置上。

    1.3K20

    声明式 UIKit 在有赞美业的实践

    在 iOS 9 之后,UIKit 提供了 UIStackView 就是通过类似 FlexBox 的形式,接管视图之间的布局规则,减少对视图的的操作,来达到快速布局的效果。...同时上述开源库中,只有 ComponentKit 实现了声明式设计,OC 中繁琐的中括号和声明式多级的缩进结合起来,代码的可读性也大打折扣。...UIView |-- UILabel |-- UIButton 同时 View 之间没有相互联系,移植性高。 为什么不通过描述对象的方式来声明而采用直接使用 View 进行声明呢?...相比于用 UIView 直接声明结构的形式,View 的创建是非常重的,重复创建不现实。在UIView tree中,View是可变的,只需要把变化的操作放入动画 block 中即可由系统完成。...UIKit 中的列表 UITableView, UICollectionView 在日常开发中扮演者重要的角色。

    1.9K30

    浅析为何能通过FDStackView在iOS9以下使用UIStackView

    前几天看到sunnyxx团队的新作FDStackView。大家都知道在iOS9苹果提供了一个新的玩具UIStackView,然而在iOS9以前是没有办法使用的。...可通过FDStackView你却可以在iOS9以前的系统上使用UIStackView,更重要的是我们不需要去做任何额外的工作,FDStackView会自动为我们处理好一切。...今天分析了一下是如何实现这个神奇的功能的,在FDStackView.m中嵌入了一段内联汇编: __asm( ".section __DATA,__objc_classrefs,regular..." ); 这段代码的主要作用是在DATA这个segment中暴露了L_OBJC_CLASS_UIStackView这个符号,它指向了符号OBJC_CLASS$_UIStackView(编译器硬编码确定...由于不能将一个32位的常量直接存入一个寄存器中,所以需要分别取它的高16位和低16位存入。 完了之后将pc和%0相加存入%0中,然后将输入保存到stackViewClassLocation。

    91430

    UILabel显示定时器文本的跳动问题解决方案

    先看一个有问题的展示效果: ? 显示跳动的文本 上面的gif图会发现在显示验证码计数时出现跳动和闪烁的问题。目前大多数用来实现定时器显示的控件都是UILabel。...在iOS9以前系统默认的英文字体是Helvetica, 这种字体每个数字的宽度都是相等的。而在iOS9以后默认的英文字体变为San Fransico字体,这种字体每个数字的宽度是不相等的。...正是因为数字宽度的不相等就导致了用UILabel来显示定时器文本时出现文字跳动闪烁的问题。 因此解决的方案就是选用一种等宽数字字体显示即可。...UILabel *label = [UILabel new]; label.font = [UIFont fontWithName:@"Helvetica" size:16]; 用UIFont的新...label = [UILabel new]; //记得这个API是iOS9以后才有效!!!

    1.3K20

    深入剖析Auto Layout,分析iOS各版本新增特性

    在得到自己的layout之前Layout Engine会将Views,约束,Priorities(优先级),instrinsicContentSize(主要是UILabel,UIImageView等)通过计算转换成最终的效果...一般控件需要四个约束决定位置大小,如果定义了intrinsicContentSize的比如UILabel只需要两个约束即可。...视图变量名出现在方括号中,例如[view]。 字符串中顺序是按照从顶到底,从左到右 视图间隔以数字常量出现,例如-10-。...,比如UILabel,UIButton,选择控件,进度条和分段等等,可以自己计算自己的大小,比如label设置text和font后大小是可以计算得到的。...还有种情况就是两个冲突的约束的权重是一样的就会崩。 Logical Errors:布局中的逻辑错误。 不含视图项的约束不合法,每个约束至少需要引用一个视图,不然会崩。在删除视图时一定要注意。

    1.6K10

    IOS 生态如何做多端适配

    在 IOS 中写页面有两种方式,一种通过 code,直接在对应 viewController 中描述对应元素的特性即可(这种方式在大型项目中用的很多;另外一种是直接利用 storyboard,通过 UI...其中在布局上比较重要的是 IOS 中的 constraint 概念,通过限制一个 view 在上下左右的位置 和 自身尺寸大小就可以实现布局定位的效果。...还记得,在 Xcode 工具栏中,有一行指明了当前的机型和屏幕: ? 其中 C 代表 compact;R 代表 regular。这两个属性是用来描述屏幕短边和长边的特征。...StackView,有点类似 CSS 中的 flex 布局属性,你可以很容易构建一个水平或者垂直的流式布局。...它最大的一个特点是会自动为里面的 UIView 构建布局约束。 ? UIStackView 拥有三个规则 分布方向、对齐规则、分布规则,优先指定 axis 属性,来定义布局轴的方向。

    2.2K10

    用MyLayout实现布局性能的提升以及对阿拉伯国家的支持

    视图的构建和布局时间 构建时间 Frame MyLayout AutoLayout Masonry UIStackView TGLinearLayout 0.08 0.164 0.219 0.304 0.131...UIStackView的构建时长要稍微优于MyLayout的线性布局MyLinearLayout.但是布局时长则是MyLinearLayout的5.5倍。...也就是界面中的元素总是按从右往左的方向进行排列布局,大部分国家的书写以及排列习惯都是从左往右,是LTR方向布局,而对于一些阿拉伯国家,文字的书写以及展示的顺序都是从右往左方向的,下面的两张图片展示了阿拉伯国家的界面展示效果...RTL布局 苹果在iOS9中对RTL进行了全面的支持。而MyLayout和TangramKit这次新升级的版本对RTL的支持可是没有任何版本限制的。...通过这个新定义的概念您就不需要担心在进行国际化布局时指定方向了。下面是MyLayout中对RTL支持的一些效果。 ?

    86960
    领券