带有AutoLayout错误标题的UISegmentedControl
我有一个自定义的UITableViewCell在左侧有一个标签在右边的UISegmentedControl
。 我只是习惯于在代码中使用自动布局,这是我在我的自定义单元格(使用UIView + AutoLayout ):
-(void)updateConstraints { self.titleLabel.translatesAutoresizingMaskIntoConstraints = NO; self.segmentedControl.translatesAutoresizingMaskIntoConstraints = NO; [self.titleLabel pinToSuperviewEdges:JRTViewPinLeftEdge inset:DB_AUTOLAYOUT_DEFAULT_INSET]; [self.titleLabel centerInContainerOnAxis:NSLayoutAttributeCenterY]; [self.segmentedControl pinToSuperviewEdges:JRTViewPinRightEdge inset:DB_AUTOLAYOUT_DEFAULT_INSET]; [self.segmentedControl pinAttribute:NSLayoutAttributeBaseline toAttribute:NSLayoutAttributeBaseline ofItem:self.titleLabel]; [super updateConstraints]; }
我的问题是,分段控件的第一个标题总是错位:
这就是iOS 6上的样子:
在iOS 7上:
所以第一个问题是:我如何解决这个问题?
其他,切向问题:我是否通过将自动布局代码放入updateConstraints
来做正确的事情,还是应该只应用一次约束?
总之来自UIView.h
如果你在-updateConstraints中设置了所有的约束条件,如果没有人约束,你甚至可能永远不会收到updateConstraints。 为了解决这个鸡和鸡蛋的问题,重写此方法返回YES。
+ (BOOL)requiresConstraintBasedLayout { return YES; }
- 如何在自动布局的横向模式下设置水平文本字段?
- 无法同时满足约束embedded在故事板中的AVPlayerViewController的警告
- AutoLayout uitableviewcell在横向和iPad上计算基于肖像iPhone的高度
- 为什么UITableViewCell具有自动布局约束冲突
- UITableView使用AutoLayout自动调整页眉和页脚视图的大小
- 仅UIScrollView自动布局垂直
- iOS 8:UITableViewCell.contentView不调整其中的子视图
- UICollectionView iOS 9在支持RTL语言的项目上发布
- 使用自动布局在UIScrollView中使用浮动视图滚动犹豫