Animation 设置UIView frame.origin的动画

Animation 设置UIView frame.origin的动画,animation,uiview,Animation,Uiview,我在网上看到了一些关于简单UIView滑入或滑出的示例代码。让UIView以屏幕外的坐标(负数)开始,然后动画参数简单地更改UIView的帧是有意义的。所以第一个问题是:这是否提供了最明显的方法 但是,在我的代码中,帧原点是不可赋值的。我得到了这行的Xcode错误,它也说明了这一点 我只是想在动画中做一些类似的事情: self.viewPop.frame.origin.y=100; 感谢您的帮助 更新 我已经解决了这个问题。我发现的技术是将视图的帧指定给另一个CGRect,并对该CGRect

我在网上看到了一些关于简单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;

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


[UIView animateWithDuration:2.0 animations:^{ 

    self.moveView.frame = frame;

}];

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

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


[UIView animateWithDuration:2.0 animations:^{ 

    self.moveView.frame = frame;

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


[UIView animateWithDuration:2.0 animations:^{ 

    self.moveView.frame = frame;

}];

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);
}

将你的答案转化为答案,然后将其标记为正确答案。