无论设备是什么设备 – iOS都以编程方式alignment屏幕底部的标签

我试过了

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

..但是因为我正在寻找位置的标签是在屏幕的底部,所以当我切换设备时,它将不可见。 我试图使标签从左边10像素,从底部10像素。 它应该看起来一致,无论在iPhone 4,5,6或6 plus上查看。

所以,你的问题是关于X和Y,对吗? iOS中的点位于屏幕的左上angular,所以屏幕的左上angular是(0,0)。

如果沿着左边缘向上/向下移动,则X坐标将继续为0.所以,如果要在左边缘右侧10点,X将为10。

屏幕底部可以这样计算:

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

在这里,variablesscreenHeight将成为屏幕的底线。 所以如果你想在线以上10点,你需要得到(screenHeight – 10)。

但是,正如Lyndsey Scott在下面的评论中提到的那样,这会将标签的左上angular放在顶部screenHeight – 10中,这可能(很可能是10的值)将您的标签置于视线之外。 为了解决这个问题,你也可以减去标签的高度,使标签在正确的位置上。

所以你的最终答案是:

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