UIView均匀调整大小

时间:2012-04-30 11:59:46

标签: iphone uiview resize frame evenly

我有一个uiview子类,我想均匀扩展。我的意思是我希望视图的原点位于中心,并且宽度和高度扩展相同的量。现在,原点位于左上角(0,0),它向下扩展到右边。我该怎么做呢?

2 个答案:

答案 0 :(得分:0)

更改框架的宽度和高度时,还要将框架的x和y位置更改为这些数量的一半。

例如,如果您的框架当前(40,60,100,200)并且您希望它的宽度增加20倍甚至更高,则需要它(30,45,120,230)。

答案 1 :(得分:0)

我建议,如果我理解你的问题,你会得到视图所在的超级视图的大小。让这个观点为view。然后,让您的观点为myView

所以你需要做的就是:

将屏幕大小的一半用于宽度和高度值,并定位视图的原点。

UIView view = myView.superview;
if (nil != view) {
    // Make sure your view won't extend by itself with this
    myView.autoresizingMask = UIViewAutoresizingNone;

    // Get The size of the parent view
    CGSize size = view.bounds.size;

    // Set the new frame of your view
    myView.frame = CGRectMake(size.width/2.0f, 
                              size.height/2.0f, 
                              size.width/2.0f,
                              size.width/2.0f);
}

现在您的视图定位正确

相关问题