动画UIView frame.origin

时间:2011-06-12 23:08:07

标签: animation uiview

我在网上看到了一些关于简单的UIView滑入或滑出的示例代码。让UIView以其坐标离开屏幕(负面)开始是有意义的,然后动画参数只是改变UIView的框架。所以第一个问题是:这是否提供了最明显的方法?

但是,在我的代码中,帧原点不可分配。我得到了该行的Xcode错误。

我只是想在动画中做这样的事情:

self.viewPop.frame.origin.y = 100;

感谢任何帮助。

更新:我已经解决了这个问题。我发现的技术是将视图的框架分配给另一个CGRect,并对该CGRect进行更改,然后将其分配回框架:

CGRect frame=self.moveView.frame;
frame.origin.x=newvalue.


[UIView animateWithDuration:2.0 animations:^{ 

    self.moveView.frame=frame;

}];

2 个答案:

答案 0 :(得分:12)

更新:我已经解决了这个问题。我发现的技术是将视图的框架分配给另一个CGRect,并对该CGRect进行更改,然后将其分配回框架:

CGRect frame=self.moveView.frame;
frame.origin.x=newvalue.


[UIView animateWithDuration:2.0 animations:^{ 

self.moveView.frame=frame;

}];

答案 1 :(得分:1)

FWIW,很高兴为这类事情提供UIView类别:

@interface UIView (JCUtilities)

@property (nonatomic, assign) CGFloat frameX;

-(CGFloat)frameX;
-(void)setFrameX:(CGFloat)newX;

@end

@implementation UIView (JCUtilities)

- (CGFloat)frameX {
    return self.frame.origin.x;
}

- (void)setFrameX:(CGFloat)newX {
    self.frame = CGRectMake(newX, self.frame.origin.y,
                            self.frame.size.width, self.frame.size.height);
}