ios - 移动一个 uipickerview

标签 ios uiview positioning uipickerview uidatepicker

我有这个问题: 如果我使用 uidatepicker,一切正常: 我有这段代码:

datePickerView.frame = CGRectMake(0, 264, 320, 216);
datePickerView.bounds = CGRectMake(0, -108, 320, 216);

并且日期选择器在底部有一半(就像我想要的(仅用于测试))

但是如果我使用 uipickerview,并且我使用相同的代码:

genderPickerView.frame = CGRectMake(0, 264, 320, 216);
genderPickerView.bounds = CGRectMake(0, -108, 320, 216);

但是 pickerview 在底部,而不是像 datepicker 那样在底部的一半... 有什么问题?? 提前致谢!

最佳答案

这是因为您更改了 View 的绘图边界。我想为什么选择器 View 之间不同的答案是由于每个控件的实际实现 - 一个必须在边界原点绘制,而另一个必须在框架原点绘制。

通过将边界的 y 原点设置为 -108, View 的可绘制区域原点现在比实际 View 位置高 108 像素。通常,您永远不想在边界上设置原点,尤其是当您不拥有控件时。只需使用框架位置:0,156、320、216,它们的行为应该相同。

有关何时应使用框架、边界或中心 View 属性的详细解释,请参阅 UIView's frame, bounds, center, origin, when to use what?

关于ios - 移动一个 uipickerview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4764418/

相关文章:

css - 使用 CSS 将我的文本微调 10px

iphone - Apple年度测试设备限额

ios - 执行 segue 后无法更改标签文本

ios - 发布版本时,Delphi ios 应用程序在手机上的名称错误

iphone - 从包含其他 View 的 UIView 导出高分辨率图像

ios - AutoLayout:UIView 中的 UIView 的框架不正确

html - 居中谷歌地图 iframe

html - 如何将副标题放在标题下方

ios - 具有动态高度的 UIWebView 导致内存崩溃

ios - 在 iOS 8 中使用 NEVPNManager,如何以编程方式创建与自定义 VPN 类型的 VPN 连接? (例如 Cisco any connect)