UIControl有两个属性可以记录,以影响控件视图中的内容布局:
contentHorizontalAlignment
The horizontal alignment of content (text or image) within the receiver.
controlVerticalAlignment
The vertical alignment of content (text or image) within the receiver.
我有一个UIControl子类,它管理一组五个子视图;每个子视图都是一个自定义的UIView子类(即不是UILabel或UIImageView)。
我想要获得的行为是UIControl使用contentHorizontalAlignment
和contentVerticalAlignment
属性管理自定义子视图的布局。
从我的实验中看,在进行子视图布局时,UIControl实际上并不尊重这些属性值,至少当子视图不是标签或图像时。不过,我并不是100%确定我的子类是否正确实现。
我的问题是三个问题:
由于存在contentHorizontalAlignment
和contentVerticalAlignment
属性,我期待UIControl提供某种基本级别的布局行为。
我离开了吗?我不反对实现我自己的布局行为。如果UIControl已经提供了我应该使用的一些布局行为,我只是不想与框架作斗争。
谢谢,
比尔
答案 0 :(得分:4)
只是为了跟进......
UIControl只是将这些属性作为子类的一致API提供。基类对它们没有任何作用。
在UIControl子类中,覆盖-layoutSubviews
方法并使用属性来指导布局逻辑。
e.g。
switch (self.contentHorizontalAlignment) {
case UIControlContentHorizontalAlignmentCenter:
// layout logic for centering
break;
}