如何使用情节提要约束将两个 UIPickerView 并排均匀分布?
Posted
技术标签:
【中文标题】如何使用情节提要约束将两个 UIPickerView 并排均匀分布?【英文标题】:How can I evenly space two UIPickerView side by side using storyboard constraints? 【发布时间】:2014-06-20 12:53:45 【问题描述】:有没有办法使用storyboard
约束均匀地分隔两个UIPickerView
?我正在制作一个应用程序,该应用程序在横向模式下的同一视图中并排有两个 UIPickerView
(我从未在此应用程序中使用纵向模式)。所以我需要涵盖所有手机尺寸。
在 iPhone 4 中,第一个 UIPickerView
将从 x=0 变为 x=240,第二个 UIPickerView
将从 x=240 变为 x=480。如果用户要使用更大的屏幕分辨率(iPhone 5),我希望像这样具有相同的均匀间距。我怎样才能做到这一点?如果使用storyboard
不可行,我该如何编写代码?谢谢。
【问题讨论】:
你不能只使用一个UIPickerView
并在UIPickerViewDataSource
的numberOfComponentsInPickerView:
方法中返回2吗?
我希望在某些时候隐藏第二个 UIPickerView。我认为不可能隐藏可变数量的组件。据我所知,全有或全无。
这是可能的。在UIPickerView
上,您可以调用reloadAllComponents
方法并返回不同数量的组件。
【参考方案1】:
尝试使用如下图所示的以下约束:
【讨论】:
【参考方案2】:我会编码(个人喜好)。
通过插座连接您的故事板选择器,然后在 self.viewDidLoad 中:
// get half the width of the view that holds the pickers
float theWidth = self.view.frame.size.width / 2;
// Adjust the firstPicker
self.firstPicker.frame = CGRectMake (0,0,theWidth,self.firstPicker.frame.size.height);
// Adjust the secondPicker
self.secondPicker.frame = CGRectMake (theWidth, 0, theWidth,self.secondPicker.frame.size.height);
就是这样 - 总是相同的大小和对齐,一半的视图持有它。为了方便起见,您可以继续在 Storyboard 中移动内容。
【讨论】:
这不起作用。此外,当我在所有手机分辨率上输出 theWidth 值时,它总是显示 160,所以这不起作用。行 self.secondPicker.frame = CGRectMake (theWidth, 0, self.secondPicker.frame.size.height);没有足够的参数(预计 4 个)。 我忘了为 secondPicker.frame 添加宽度 - 显然。我不知道您所说的“在所有手机分辨率上”是什么意思。它可以工作,我每天都在设置我的框架,一个适用于所有屏幕尺寸的代码。如果你旋转你的设备,你当然会想要更新框架。由于我在代码中而不是 IB 中添加我的选择器,因此您可能必须在 viewDidAppear 中调用框架。 好吧,我一定是做错了什么。感谢您的帮助,很高兴知道在代码中执行此操作的方法:) 我接受了另一个答案,因为问题是在情节提要中执行此操作,但我也非常感谢您的帮助。 不不没关系 - 请选择最适合您需求的!我发帖不是为了积分,只是想帮忙。请牢记代码,以备将来使用更多屏幕尺寸或动态更改应用程序窗口尺寸。以上是关于如何使用情节提要约束将两个 UIPickerView 并排均匀分布?的主要内容,如果未能解决你的问题,请参考以下文章
如何仅使用一个情节提要为所有 iPhone 设备设计自动布局约束?