在 UIToolBar 中调整 UISegmentedControl 的大小,并针对不同的屏幕尺寸进行约束

Posted

技术标签:

【中文标题】在 UIToolBar 中调整 UISegmentedControl 的大小,并针对不同的屏幕尺寸进行约束【英文标题】:Resizing a UISegmentedControl within a UIToolBar with constraints for different screen sizes 【发布时间】:2016-08-25 21:13:12 【问题描述】:

我在导航栏下方有一个UIToolBar,在这个工具栏中是一个栏按钮项,其中包含一个UISegmentedControl。问题是我无法向工具栏中的任何内容添加约束。当我将UISegmentedControl 放置在工具栏/栏按钮项内时,UISegmentedControl 将其自身固定到左边距,但是当我尝试将其宽度设置为与右边距相同时,我没有得到任何蓝色虚线边。我也看不到居中的选项,但我真的不想居中,我想让分段控件随着屏幕从 iPhone4 变为 iPhone6+(纵向)而增加宽度,这样它总是有一些 X-pts左边距和右边距。我该怎么做呢?

我有工具栏的宽度,对于 4.7 英寸的屏幕,它是 375。我也可以得到这个尺寸的分段控件的宽度,但是我不能告诉正确的宽度使左右边距相同,我只能目不转睛。

【问题讨论】:

【参考方案1】:

您应该将UISegmentedControl 作为直接子视图添加到UIToolbar(通过addSubview 或直接在界面生成器中)。虽然绕过UIBarButtonItem 在这里似乎很方便,但它剥夺了您完全按照需要布置的可能性,因为UIToolbar 将为您处理布局,您不能覆盖它。当您添加UISegmentedControl 作为子视图,可以根据需要添加约束,使其填满整个宽度。

【讨论】:

以上是关于在 UIToolBar 中调整 UISegmentedControl 的大小,并针对不同的屏幕尺寸进行约束的主要内容,如果未能解决你的问题,请参考以下文章

UIToolbar 的动画调整大小导致在 iOS <5.1 上剪切背景

使用UIToolbar调整UIView的大小不会同时调整大小

调整 UIToolbar 的大小以适合其项目?

UIToolbar 如何调整里面的按钮位置

自定义 UIToolbar 用动画调整大小

iOS - UIToolbar 从后台返回后调整大小