我花了几个小时尝试定位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已经没有这个方法,这让我觉得这可能不是正确的方法。这就是我的问题......
这种方法是正常还是我做了一些我不应该做的事......出于某种原因?
答案 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}];
我只保存尺寸参数并更改原点。