将UISegmentedControl定位在按钮栏中

时间:2017-01-19 01:42:36

标签: ios alignment interface-builder uinavigationbar xcode8

我正在尝试使用UISegmentedControl作为自定义右键按钮栏项。使用Interface Builder,当我将控件拖动到导航栏时,它的大小非常宽(考虑到段内容时太宽):

Segmented control added to nav bar

我已经尝试将段的宽度设置为我认为看起来很好并且整体控件调整大小的东西,但是它被固定到它所分配的原始空间的左侧。我似乎找不到从那里移动它的方法。这是IB在风景中看起来像这样的图片:

screen shot from Interface Builder

这就是在纵向模式下在iPhone 7 Plus模拟器上运行的样子:

running on iPhone 7 Plus simulator

正如您所看到的,分段控件的位置偏离中心太远。

我尝试了将分段控件嵌入到另一个视图中的hack(在this thread中建议),将包含视图保留为条形按钮项的全宽,并将分段视图限制在它的右侧容器。这让它向右移动,但这是在iPhone 7模拟器上运行它的效果(比7 Plus稍窄):

enter image description here

这里的问题是,应该居中的标题已被推向左侧。我认为这是因为(透明)条形按钮项目占用的宽度远远超过分段控制所需的宽度。

有没有办法让导航栏的右侧按钮区域变小?

1 个答案:

答案 0 :(得分:2)

我的步骤如下:

1.将段控件拖动到导航栏:

enter image description here

2.更改分段宽度:

enter image description here

3.iPhone7& iPhone 7Plus看起来都不错:

  

enter image description here enter image description here