我在不同的视图控制器中有几个UISegmentedControls。在iPad上,当设备改变方向时,我将这些段重新对齐,以便它们与下面的UITableViews对齐。我看到的问题是虽然调整大小掩码是为UISegmentedControl设置的,并且没有我的任何代码,但它调整大小以填充正确的宽度,一旦我尝试更改其中的段的宽度,分段将不会拉伸一直到最后,或者他们会太大而且会过去。
当控件处于拆分视图中时,似乎只会发生这种情况。
- (void)orientationChanged:(NSNotification *)notification {
[self setHeaderWidths];
}
-(void)setHeaderWidths{
int totalWidth = self.segSorter.bounds.size.width;
int areaWidth = 100,
priceWidth = 100;
int padding = 35;
[self.segSorter setWidth:totalWidth -padding- areaWidth-priceWidth forSegmentAtIndex:0];
[self.segSorter setWidth:areaWidth forSegmentAtIndex:1];
[self.segSorter setWidth:priceWidth forSegmentAtIndex:2];
}
最初我认为它可能是由动画引起的,但是即使添加延迟以便旋转动画完全完成也不会影响宽度。对于splitview中的控件是否给出了假宽度或其他内容?
答案 0 :(得分:0)
您可能考虑的一个选项就是重新创建控件或删除然后重新添加细分。
在不知道控件内部发生了什么的情况下,当你改变宽度时,如果你要调整的第一个(比如增加宽度)会导致宽度的总和超过界限怎么办?在不知道逻辑是如何工作的情况下,当我遇到这样的事情似乎是为了简单的改变而斗争时,更容易推出一个方法,只需在需要时重新创建控件(或删除并重新添加)指定大小的元素。