gpt4 book ai didi

ios - 以编程方式创建不同屏幕尺寸下的对象

转载 作者:行者123 更新时间:2023-11-28 21:54:07 25 4
gpt4 key购买 nike

我有下面的代码来创建一个按钮。
现在按钮的位置无法与不同的设备正确对齐或缩放。

我在 iPhone 6 屏幕尺寸下写了下面的代码。

UIButton *but= [UIButton buttonWithType:UIButtonTypeRoundedRect];
[but addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[but setFrame:CGRectMake(605, 320, 35, 35)];
[but setTitle:@"Login" forState:UIControlStateNormal];
[but setExclusiveTouch:YES];
[self.view addSubview:but];

如果我想让 iPhone 6 plus 的位置和 iPhone 6 一样,我该怎么办?

非常感谢。

最佳答案

使用 CGFloat screenScale = [[UIScreen mainScreen] scale];。现在screenScale可以用来判断是不是retina显示,也就是当前的设备比例。

获取屏幕的当前边界:CGRect screenBounds = [[UIScreen mainScreen] bounds];

要获取设备的当前像素表示,请使用 CGSize screenSize = CGSizeMake(screenBounds.size.width * screenScale, screenBounds.size.height * screenScale);在此之后,就是使用相对定位的问题,而不是你现在使用的绝对定位。即使用当前可见的所有元素来确定按钮的实际位置。例如 CGFloat yPos = (screenSize.height-20)。 yPos 现在将相对于屏幕底部,在所有设备上减去 20 像素。

不过我的建议是使用自动布局。在那里你可以创建相对的约束(或者如果你想要的话是绝对的,但它消除了自动布局的目的)。网上有非常好的指南,只需短暂的谷歌搜索即可。

关于ios - 以编程方式创建不同屏幕尺寸下的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27225711/

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