我正在使用以下代码创建按钮 现在,按钮的位置无法与不同的设备正确对齐或缩放。
我在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相同的位置。我该怎么办?
非常感谢。
答案 0 :(得分:1)
使用CGFloat screenScale = [[UIScreen mainScreen] scale];
。现在,screenScale可用于确定它是否是视网膜显示器,即当前设备规模。
获取屏幕的当前界限:CGRect screenBounds = [[UIScreen mainScreen] bounds];
要获取设备的当前像素表示,请使用CGSize screenSize = CGSizeMake(screenBounds.size.width * screenScale, screenBounds.size.height * screenScale);
在此之后,这是一个使用相对定位的问题,而不是你现在使用的绝对定位。也就是说,使用当前可见的所有元素来确定按钮的实际位置。例如CGFloat yPos = (screenSize.height-20)
。 yPos现在将相对于屏幕底部,在所有设备上减去20像素。
我的建议是使用自动布局。在那里,您可以创建相对的约束(或者如果您想要那么创建绝对约束,但它会消除自动布局的目的)。网上有非常好的导游,只需短暂的谷歌搜索。
答案 1 :(得分:1)
您也可以将
autoresizing mask
设置为UIButton
。 Check this link。您需要为左边距,高度和设置自动调整遮罩 UIButton的宽度