gpt4 book ai didi

ios - CGRectMake : How To Calculate X and Y For UIPickerView Animation?

转载 作者:行者123 更新时间:2023-12-01 18:18:59 25 4
gpt4 key购买 nike

我的 Storyboard上有这个 UIPickerView :

enter image description here

这是基于 Size Inspector 的位置:

enter image description here

这是我的代码:

- (void)showPickerView
{
[UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
self.picker.frame = CGRectMake(0 , 288, self.picker.frame.size.width, self.picker.frame.size.height);
self.picker.hidden = NO;
}
completion:^(BOOL finished) {
}];
}

(经过反复试验)为了在 4 英寸屏幕上正确放置(底部),我必须将 288 设置为 Y。我不知道这个数字来自哪里。

因为如果你在这里做一些数学运算,你不会得到那个数字:

iPhone 屏幕高度 = 1136px,pickerview 高度 = 216pts = 432px

如果 X 和 Y 从 TOP-LEFT (0, 0) 测量,那么对于 4 英寸屏幕,我应该使用 1136 - 432 = 704 px/2 = 352pts。不是288分。

但根据 Size Inspector 的原点,这个物体是从左下角开始测量的。因此,现在从左下角测量 X 和 Y 的 (0,0)。你仍然不会得到那个号码。

另外,更糟糕的是……当我在 3.5 英寸模拟器上运行时,它没有完全显示出来。

如何为 UIPickerView 提供 X 和 Y 值,以便在 3.5 和 4 英寸视网膜显示屏上完美显示?

谢谢你。

最佳答案

尺寸1136px是全屏的,你必须考虑到状态栏有 20px 和导航栏有 44px 所以你的计算是这样的:

1136px - 432(picker) - 40(status bar) - 88(navigation bar) = 576; 576/2 = 288px

这就是为什么 288px 适合您的原因。

如果您想为您的选择器 View 提供适当的坐标,您必须执行以下操作:
        self.picker.hidden = NO;
[UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
self.picker.frame = CGRectMake(0 ,
self.view.fra.size.height
- self.picker.frame.size.height,
self.picker.frame.size.width,
self.picker.frame.size.height);
}
completion:^(BOOL finished) {
}];

但要小心,调用它时非常重要,请确保在 -viewDidAppear: 之后或之后调用它叫做。由于您希望这段代码在 3.5 英寸和 4 英寸屏幕上都能完美运行,因此在调用此方法之前, View 不会正确调整大小并且框架不正确,特别是如果您使用带有或的 Storyboard xib 创建具有 4 英寸显示 View 的 View Controller 。

关于ios - CGRectMake : How To Calculate X and Y For UIPickerView Animation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18780767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com