我有一个很少的控件的视图,我希望它垂直居中,无论设备。如何在3.5英寸和5英寸设备上居中查看?
我尝试了自动布局没有太多的帮助。
我试过大小检查器 - 排列 - 中心水平在容器中,但它只适用于一种类型的屏幕。所以,如果我安排在4英寸的显示器上,它将在3.5英寸太低,如果我安排在3.5英寸它将在4英寸太高。
可以做些什么呢?
我有一个很少的控件的视图,我希望它垂直居中,无论设备。如何在3.5英寸和5英寸设备上居中查看?
我尝试了自动布局没有太多的帮助。
我试过大小检查器 - 排列 - 中心水平在容器中,但它只适用于一种类型的屏幕。所以,如果我安排在4英寸的显示器上,它将在3.5英寸太低,如果我安排在3.5英寸它将在4英寸太高。
可以做些什么呢?
我结束了使用两种不同的XIBs,一个3.5英寸和一个4台英寸的设备来完成。
@Downvoter请详细说明downvote的原因,以便用户可以在可能的情况下改进答案。 – Popeye 2013-03-17 15:48:22
尝试使用[UIScreen mainScreen].bounds.size
设置代码中框架的X和Y以获取屏幕大小。
反正我敢肯定,这可以通过自动布局
Autolayout非常棒,但我想支持iOS 5. – Dvole 2013-03-17 10:37:21
哦,好的!试试这个代码: 'CGSize screenSize = [UIScreen mainScreen] .bounds.size; CGFloat yValue = screenSize.height/2 - self.self.yourView.frame.size.height/2; CGRect newRect = CGRectMake(self.yourView.frame.origin.x,yValue,self.yourView.frame.size.width,self.yourView.frame.size.height); self.yourView.frame = newRect;' – BigLex 2013-03-17 10:52:53
您可以通过执行
CGPoint viewCenterPoint = [[self view] center];
这将让双方的主视图的中心x
和y
位置得到的,你是把主要观点的中心到。你可以,如果你想有中心主视图x
比你能做到这样设定为每一个自己x
或y
位置像
CGPoint viewCenterPoint = CGPointMake([[self view] center].x, [[self view] center].y);
左右。
一旦你设置了viewCenterPoint
,你就可以在新的视图上看到你想要放在主视图的中心,你可以做。
// ... all code to set myNewView up
[myNewView setCenter:viewCenterPoint];
简单来说,这应该适用于3.5英寸和4英寸的设备以及iPad。
希望这会有所帮助。
@Downvoter请详细介绍downvote的原因,以便用户可以改善问题,如果可能的话。 – Popeye 2013-03-17 15:49:59