2017-06-23 11 views
0

Ich habe UITableView und ich möchte animieren, wenn Benutzer auf Knopf klicken.Ich möchte UITableView auf Knopf klicken Klicken

Für Staat Ausgewählte -> UNTEN

Für nicht-ausgewählten Zustand nach oben -> OBEN NACH UNTEN

Dafür habe ich Below-Code versucht haben. Mein Tableview Rahmen (0,39, Breite, Höhe)

- (IBAction)onInviteFriendsButtonClick:(UIButton *)sender { 
    sender.selected =! sender.selected; 

    if (sender.selected) { 
     CGRect napkinBottomFrame = self.tblVWInviteFriend.frame; 
     napkinBottomFrame.origin.y = [UIScreen mainScreen].bounds.size.height; 
     self.tblVWInviteFriend.frame = napkinBottomFrame; 
     [UIView animateWithDuration:0.5 delay:0.0 options: UIViewAnimationOptionTransitionCurlUp animations:^{ 
      self.tblVWInviteFriend.frame = CGRectMake(0, 39, self.tblVWInviteFriend.frame.size.width, self.tblVWInviteFriend.frame.size.height); 
     } completion:^(BOOL finished){/*done*/}]; 
    } 
    else { 
     CGRect napkinBottomFrame = self.tblVWInviteFriend.frame; 
     napkinBottomFrame.origin.y = 39; 
     self.tblVWInviteFriend.frame = napkinBottomFrame; 
     [UIView animateWithDuration:0.5 delay:0.0 options: UIViewAnimationOptionTransitionCurlDown animations:^{ 
      self.tblVWInviteFriend.frame = CGRectMake(0, -[UIScreen mainScreen].bounds.size.height, self.tblVWInviteFriend.frame.size.width, self.tblVWInviteFriend.frame.size.height); 
     } completion:^(BOOL finished){/*done*/}]; 
    } 
} 

Wenn i-Taste klicken, wird es von UNTEN animieren richtig nach oben. aber wenn ich wieder auf die Schaltfläche klicke, wird es wieder von BOTTOM TO TOP.

Antwort

0

Da Sie frame.origin.y von TableView eingestellt haben, ist -y oder XY-Koordinate.

self.tblVWInviteFriend.frame = CGRectMake(0, -[UIScreen mainScreen].bounds.size.height, self.tblVWInviteFriend.frame.size.width, self.tblVWInviteFriend.frame.size.height); 

ersetzen mit diesem

self.tblVWInviteFriend.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height, self.tblVWInviteFriend.frame.size.width, self.tblVWInviteFriend.frame.size.height); 
0

Versuchen Sie folgendes:

- (IBAction)onInviteFriendsButtonClick:(UIButton *)sender { 
    sender.selected =! sender.selected; 

    if (sender.selected) { 
     CGRect napkinBottomFrame = txtAOP.frame; 
     napkinBottomFrame.origin.y = [UIScreen mainScreen].bounds.size.height; 
     txtAOP.frame = napkinBottomFrame; 
     [UIView animateWithDuration:0.5 delay:0.0 options: UIViewAnimationOptionTransitionCurlUp animations:^{ 
      txtAOP.frame = CGRectMake(0, 39, txtAOP.frame.size.width, txtAOP.frame.size.height); 
     } completion:^(BOOL finished){/*done*/}]; 
    } 
    else { 
     CGRect napkinBottomFrame = txtAOP.frame; 
     napkinBottomFrame.origin.y = -[UIScreen mainScreen].bounds.size.height; 
     txtAOP.frame = napkinBottomFrame; 
     [UIView animateWithDuration:0.5 delay:0.0 options: UIViewAnimationOptionTransitionCurlDown animations:^{ 
      txtAOP.frame = CGRectMake(0,39 , txtAOP.frame.size.width, txtAOP.frame.size.height); 
     } completion:^(BOOL finished){/*done*/}]; 
    } 
}