ios - 将 UISegmentedControl 放置在按钮栏中

标签 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

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

我尝试了一种技巧(在 this thread 中建议),将分段控件嵌入到另一个 View 中,使包含 View 保持栏按钮项目的全宽,并将分段 View 限制在其容器的右侧。这让它移到了右边,但这是在 iPhone 7 模拟器(比 7 Plus 窄一点)上运行它的效果:

enter image description here

这里的问题是,本应居中的标题已被推到左侧。我认为这是因为(透明)栏按钮项目占用的宽度比分段控件所需的宽度要大得多。

是否有某种方法可以使导航栏的右侧按钮区域变得更小?

最佳答案

我的步骤如下:

1.将分段控件拖至导航栏:

enter image description here

2.更改线段宽度:

enter image description here

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

enter image description here enter image description here

关于ios - 将 UISegmentedControl 放置在按钮栏中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41732395/

相关文章:

ios - UITextView - 根据 SwiftUI 中的内容调整大小

ios - 使用 Xcode 8.3 在 Storyboard文件中添加了设备标签

ios - 带有 IB 的 UITableViewHeaderFooterView

ios - UIRefreshControl 怪异

html - 如何在div中垂直居中文本?

objective-c - self.tableView reloadData 不重新加载 UITableView

ios - 如何将 json 数据传递给可折叠标题 TableView Controller

ios - 无法在 ios ResearchKit 的健身任务结束时收集心率

html - CSS 在图像上换行文字

html - 水平和垂直居中按钮