我有一个UIViewController,在UIToolBar下面有一个UINavigationBar,在它下面有一个UITableView。我的UIBarButtonItem上唯一的UIToolBarUISegmentedControl,如以下屏幕截图所示:

但是,如何像在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/

10-16 22:05