iOS
未读
Objective-C:为什么分类中不能直接添加属性
为什么分类中不能直接添加属性,这个也是一个经典的面试题了。 搜了一些相关文章,再结合源码做了一个小小的总结。 其实通过这个问题,也可以一瞥 OC 中类的实现。 源码 先晒一下OC类和分类的部分源码: typedef struct objc_class *Class;
struct objc_cla
iOS
未读
UIButton扩大点击范围以及关于响应者链条的思考
平时开发遇到一个比较蛋疼的情景就是,设计给的按钮是40x40pt的,但是UE又觉得按钮太小,总是点不准,想要增大点击范围,这个要求合理合法,开发没有任何拒绝的理由。那就把按钮弄大吧,然后各种计算frame,按钮可能还有边框渐变色什么的,还得更复杂的处理一番,折腾下来身心俱疲。 程序员这么懒的人怎么可
iOS
未读
UILabel中文带行间距的处理,限制行数,计算高度等
最近设计同学终于受不了商品评价列表中的评价内容没有行间距,强迫我们必须加上行间距。 当时我就感觉一阵头大,因为这个评价内容如果超过五行的话,是默认不显示的,当用户点击展开才会显示,这样的话我就要在计算行数的时候把行间距算进去,还有一行的时候如果是中文是不能给Label加行间距的,否则一行文字下面会片
iOS
未读
UITableview调用reload方法时抖动问题
由于UITableview在iOS11的时候加入了Self-Sizing新特性,而且cell、header、footer是默认开启的,导致estimated的高度值变成了UITableViewAutomaticDimension(之前是0)。 如果不曾设置过estimateRowHeight属性的话
iOS
未读
iOS 截取整个 scrollview 图片
最近做的项目需要“分享图片”的功能,截屏不单单指当前屏幕可视区域,而是指整个 scrollView 区域,因为截屏的范围可自定义,所以只需要将 scrollview 的范围设置就可以,以下是相关代码: ///获取截屏图片
- (UIImage *)captureScrollView:(UIScrol
iOS
未读
objc源码分析-runtime-class
看了一段时间objc的源码,准备开个大坑,写一下了解到的东西,这一时半会是完工不了了,一篇一篇慢慢写吧。 先看一下官方对objc的介绍。 Objective-C is the primary programming language you use when writing software for
iOS
未读
iPhone 刘海机型UI适配(X、Xs、Xs Max、Xr)
iPhoneX 的分辨率:2436 x 1125px,812 x 375pt iPhoneXs 的分辨率: 2436 x 1125px,pt: 812 x 375pt iPhoneXs Max 的分辨率:2688 x 1242px,pt: 896 x 414pt iPhoneXr 的分辨率:1792
iOS
未读
COCOAPODS技巧-创建私有仓库
本文说明制作Cocoapod私有库的过程。本文涉及到两个仓库 ‘官方仓库’、’私有仓库’。 官方仓库的作用代表 CocoaPods的 官方 podspec 存放地址。 具体可以参考:CocoaPods官方源、Specs; 私有仓库的是私有 podspec 存放地址。在 git 中仓库名称是 YFRe
iOS
未读
Objective-C 中禁止调用指定的方法
在一些场景可能我们不希望用户调用默认的方法以避免一些无法控制的事情发生。 可以通过unavailable来禁用那些不想让用户调用的方法。 具体使用方法如下: // 外部调用将产生编译错误
- (instancetype)alloc __attribute__((unavailable("alloc
iOS
未读
iOS 关于 UITextField 的字数限制
有很多的使用场景需要限制用户的输入字数,比如聊天,回帖,发朋友圈之类的。 经研究找到了比较全面稳定的实现方案。 首先监听需要限制字数的 UITextField,下面两种方法都可以 [[NSNotificationCenter defaultCenter] addObserver:self