Shi*_*ami 1 objective-c uisegmentedcontrol ios autolayout
我有一个自定义的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];
}
Run Code Online (Sandbox Code Playgroud)
我的问题是分段控件的第一个标题始终未对齐:
这就是它在iOS 6上的样子: 
在iOS 7上: 
所以第一个问题是:我该如何解决这个问题?
其他,切向问题:我是通过放入自动布局代码做正确的事情updateConstraints还是应该只应用约束一次?
简而言之,来自UIView.h
如果在-updateConstraints中设置所有约束,如果没有人约束,你甚至可能永远不会收到updateConstraints.要修复此鸡和蛋的问题,请覆盖此方法以返回YES.
+ (BOOL)requiresConstraintBasedLayout {
return YES;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2112 次 |
| 最近记录: |