iOS - NavigationItem titleView 在第一次加载时居中,但随后固定在左上角

标签 ios uisegmentedcontrol uinavigationitem

我以编程方式将 UISegmentedControl 添加到 navigationItem.titleView

第一次显示时,它像我期望的那样居中。但是,当我深入了解详细信息 View Controller 时,我可以看到我的 titleView View 被推到了左上角,但我没有尝试将其取回

在我的初始化方法中我这样做

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:segmentTextContent];
segmentedControl.selectedSegmentIndex = 0;
[segmentedControl setTranslatesAutoresizingMaskIntoConstraints:NO];
segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth;
//segmentedControl.frame = CGRectMake(0, 0, 280.0f, 30.0f);


self.navigationItem.titleView = segmentedControl;

一段时间后我意识到设置 CGRectMake 没有影响

我也试过将这个登录名放在 viewDidAppear 中,但也没有改变这个结果

以前,当我尝试将一个 UISegmentedControl 放在另一个 UIView 中时,我无法点击 UISegmentedControl(我不确定我是否有这个变体解决了我的定位问题)

最佳答案

如果你只有 2 个段,我认为调整大小不需要它,它的宽度将始终适合 iPhone 4 及更低版本。

如果删除以下内容会发生什么:

[segmentedControl setTranslatesAutoresizingMaskIntoConstraints:NO];
segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth;

关于iOS - NavigationItem titleView 在第一次加载时居中,但随后固定在左上角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31928510/

相关文章:

ios - 如何在 Swift 中设置返回按钮文本

objective-c - 如何禁用水平滚动并且页面将在使用 UIScrollView 的分页中单击时更改?

ios - 在 UINavigationBar 上设置导航项时崩溃

iphone - UINavigationController 子类 navigationItem 忽略 -setLeftBarButtonItem

iphone - 子类化 UINavigationItem

ios - 将 UDID 添加到由 xCode 管理的配置文件中?

ios - 在 Swift 中将日期转换为 "/Date(631148400000+0100)/"字符串

ios - 如何在 TableViewCell 中获取更改后的值

iphone - 如何将 UISegmentedControl 合并到 UITabBarController 中?

ios - 如何使用一个瞬时按钮创建 UISegmentedControl?