0

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

4

2 回答 2

0

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

例如,如果您的帧当前是 (40, 60, 100, 200),并且您希望它宽 20 和高 30,则将其设为 (30, 45, 120, 230)。

于 2012-04-30T14:25:14.183 回答
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);
}

现在您的视图已正确定位

于 2012-04-30T14:29:11.467 回答