改变UIView的位置

时间:2013-10-18 05:20:56

标签: objective-c cocoa-touch uiview

我需要设置UIView的位置。下面的代码显示了我是如何做到的。但它不起作用。我该怎么做?

- (void)viewDidLoad
{
  [super viewDidLoad];

      CGRect frame = myview.frame;
      frame.origin.x = myview.frame.origin.x;
      frame.origin.y =   0;
      myview.frame = frame;

NSLog(@"%d", frame.origin.y );

}

4 个答案:

答案 0 :(得分:1)

UIView有一个中心属性..如果你想改变位置,那就用它......而不是调整整个视图

myview.center = CGPointMake(50, 250);

希望它对你有所帮助。

答案 1 :(得分:0)

确保您的OUTLET已连接到nib文件中的视图。

答案 2 :(得分:0)

尝试在viewDidAppear方法中执行此操作,它适用于我。

答案 3 :(得分:0)

移动视图/使用动画更改视图位置

如果您想根据需要更改View的位置,请使用以下代码行:

.h文件:

- (void)moveView:(UIView *)view withDuration:(NSTimeInterval)duration
        andCurve:(int)curve inDirection_X:(CGFloat)x inDirection_Y:(CGFloat)y;

.m文件:

- (void)moveView:(UIView *)view withDuration:(NSTimeInterval)duration
        andCurve:(int)curve inDirection_X:(CGFloat)x inDirection_Y:(CGFloat)y
{
    // Setup the animation
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:duration];
    [UIView setAnimationCurve:curve];
    [UIView setAnimationBeginsFromCurrentState:YES];

    // The transform matrix
    CGAffineTransform transform = CGAffineTransformMakeTranslation(x, y);
    view.transform = transform;

    // Commit the changes
    [UIView commitAnimations];
}

注意:要在任何地方调用上面的方法,只需这样做, 根据您的要求,即如何使用动画移动视图/更改视图位置

 [self moveView:mFrontSideView withDuration:2.0 andCurve:0 inDirection_X: 0.0  inDirection_Y: mBackSideView.center.y + 100.0];