2011-09-19 27 views
0

我想平滑过渡checkBox和noteButton像textLabel。我想这个代码,但不工作:设置编辑时如何设置动画帧

- (void)setEditing:(BOOL)editing animated:(BOOL)animated { 

    if (self.editing == NO) { 
     self.checkBox.frame = CGRectMake(50, 0, 50, 50); 
     self.noteButton.frame = CGRectMake(100, 0, 50, 50); 
     self.textLabel.frame = CGRectMake(95,0, 213, 48); 
    } else { 
     self.checkBox.frame = CGRectMake(10, 0, 50, 50); 
     self.noteButton.frame = CGRectMake(50, 0, 50, 50); 
     self.textLabel.frame = CGRectMake(95,0, 213, 48); 
    } 
    [super setEditing:editing animated:animated]; 
} 

回答

0

这应该工作。

- (void)setEditing:(BOOL)editing animated:(BOOL)animated { 
    [UIView beginAnimations:@"ResizeAnimation" context:NULL]; 
    [UIView setAnimationDuration:0.7f]; 
    if (self.editing == NO) { 
     self.checkBox.frame = CGRectMake(50, 0, 50, 50); 
     self.noteButton.frame = CGRectMake(100, 0, 50, 50); 
     self.textLabel.frame = CGRectMake(95,0, 213, 48); 
    } else { 
     self.checkBox.frame = CGRectMake(10, 0, 50, 50); 
     self.noteButton.frame = CGRectMake(50, 0, 50, 50); 
     self.textLabel.frame = CGRectMake(95,0, 213, 48); 
    } 
    [UIView commitAnimations]; 
    [super setEditing:editing animated:animated]; 
} 
0

尝试做它

- (void) layoutSubviews { 
    if (self.editing == NO) { 
    self.checkBox.frame = CGRectMake(50, 0, 50, 50); 
    self.noteButton.frame = CGRectMake(100, 0, 50, 50); 
    self.textLabel.frame = CGRectMake(95,0, 213, 48); 
    } else { 
    self.checkBox.frame = CGRectMake(10, 0, 50, 50); 
    self.noteButton.frame = CGRectMake(50, 0, 50, 50); 
    self.textLabel.frame = CGRectMake(95,0, 213, 48); 
    } 
} 
+0

此代码也工作,谢谢你 –