我有这个问题: 如果我使用 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/