如何定位UIView?

时间:2010-12-10 14:51:56

标签: cocoa-touch uiview uiviewcontroller

我花了几个小时尝试定位UIView并最终发现我需要修改视图框架。所以我在UIViewController子类中添加了一个'setPosition'方法,就像这个

一样
- (void) setPosition:(CGPoint)position
{

    CGRect newFrame = self.view.frame;
    newFrame.origin.x = position.x;
    newFrame.origin.y = position.y;
    self.view.frame = newFrame;

}

然而,这似乎很简单,我不明白为什么UIViews已经没有这个方法,这让我觉得这可能不是正确的方法。这就是我的问题......

这种方法是正常还是我做了一些我不应该做的事......出于某种原因?

2 个答案:

答案 0 :(得分:12)

像在这里一样,再次复制,修改和设置框架是通常如何完成的。这也可以通过创建一个rect并直接设置来完成:

UIView.frame = CGRectMake(50,50,50,50);//x,y,w,h

在动画块中执行此操作将为这些更改设置动画。

或者,您可以使用以下方式设置视图中心点:

UIView.center = CGPointMake(50,50);

答案 1 :(得分:2)

其他方式:

CGPoint position = CGPointMake(100,30);
[self setFrame:(CGRect){.origin = position,.size = self.frame.size}];

我只保存尺寸参数并更改原点。