UIButton: Insets

发布
更新
字数 249
阅读 2 分钟
阅读量 673

UIButton 支持设置 contentEdgeInsetstitleEdgeInsetsimageEdgeIntets, 其中 contentEdgeInsets 会影响 instrinsicConentSize,而 titleEdgeInsetsimageEdgeInsets 则不然。此外因为都是 UIEdgeInsets,不支持 NSDirectionalEdgeInsets,所以需要自己通过 userInterfaceLayoutDirection 获取阅读方向。

contentEdgeInsets

当为负值时,边界想内容方向缩减,当为正值时,按钮内部填充变多。

titleEdgeInsets

上下值为正时,都会使文本朝相反方向(上边界会朝下)偏移,而负值则相反;左右为正时会减小 label 的可见区域,当过小时会出现省略号(...)隐藏文本,为负时,则会出现“溢出”的效果。

imageEdgeInsets

表述的是图片绘制区域(drawing rect),正值会让绘制的边界朝中心方向移动,甚至翻转内容。而负值则相反是远离中心的,所以会导致图片的偏移。

更多详情可以参考:https://noahgilmore.com/blog/uibutton-padding/