我有一个UIViewController
,在UIToolBar
下面有一个UINavigationBar
,在它下面有一个UITableView
。我的UIBarButtonItem
上唯一的UIToolBar
是UISegmentedControl
,如以下屏幕截图所示:
但是,如何像在App Store应用程序中那样使UISegmentedControl
/UIBarButtonItem
拉伸(stretch)以填充UIToolBar
?
请记住,我也支持横向模式,因此当设备旋转时,它必须自动拉伸(stretch)以适应新的宽度。这是我希望通过AutoLayout
实现的功能,但据我所知,我无法在AutoLayout
中使用UIToolBar
。
有什么建议(用UIToolbar
替换UIView
除外)?
最佳答案
我创建了一个内部带有分段控件的工具栏,然后使分段控件320变宽。然后,我在每侧设置灵活的布局指南,以强制将分段的控件放到中心。这在人像中看起来不错,但是对于横向而言,分段控件将不会延伸。
人像(包括IB设置和模拟器)
景观(还包括IB设置和模拟器)
应用商店似乎已将分段控件设置为一定的宽度,然后不允许 View 旋转。我了解您希望分段控件随着布局而改变宽度,但是不幸的是,目前无法通过自动布局来实现。
我的建议是,如果您确实希望分段控件随旋转更改宽度,则是在设备旋转至横向时以编程方式设置宽度。
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
if(UIDeviceOrientationIsLandscape(UIDevice.currentDevice().orientation))
{
//set segmented control to landscape
}
if(UIDeviceOrientationIsPortrait(UIDevice.currentDevice().orientation))
{
//set segmented control to portrait width
}
}
还有一件事,如果您确实使用了该设备旋转工具,那么您仍然需要在IB中使用这些灵活的分隔符,以将分段控件保持在工具栏中的中心
关于ios - 具有UISegmentedControl AutoLayout(/全宽)的UIToolbar,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30851302/