无论设备如何,都以编程方式从屏幕底部对齐标签 - iOS

时间:2014-12-01 18:09:48

标签: ios alignment label device

我试过

self.lblTimer = [[UILabel alloc] initWithFrame:CGRectMake(x,y,width,height)]; 

..但由于我正在寻找位置的标签位于屏幕的底部,因此当我切换设备时,它会不在视野范围内。我试图让标签从左边10像素,从底部10像素。无论是在iPhone 4,5,6还是6 +上观看,它都应该看起来一致。

1 个答案:

答案 0 :(得分:1)

所以,你的问题是X和Y,对吧? iOS中的点从屏幕的左上角开始,因此屏幕的左上角是(0,0)。

如果沿左边缘向上/向下移动,X坐标将继续为0.因此,如果你想在左边缘的右边有10个点,那么X将是10。

屏幕底部可以这样计算:

CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;

在这里,变量screenHeight将是屏幕的底线。因此,如果你想要超过10分,你需要得到(screenHeight - 10)。

然而,正如Lyndsey Scott在下面的评论中提到的,这会将标签的左上角放在顶部的屏幕高度 - 10,这可能(非常可能是10)将标签放在视线之外。 要解决此问题,您还要减去标签的高度,以便在正确的位置看到标签。

所以你的答案是:

CGRectMake(10,(screenHeight - height - 10),width,height);