2017-04-18 132 views
1

当我使用setTitle: forState:方法设置我的按钮的标题时,有淡出和淡入效果。当我设置按钮标题时,有淡入淡出效果

- (void)respondsToTextField:(UITextField *)sender { 

    if ([sender.text isEqualToString:@""]) { 


     [_cancleOrConfirmButton setTitle:@"Cancel" forState:UIControlStateNormal]; 

    }else { 

     [_cancleOrConfirmButton setTitle:@"Search" forState:UIControlStateNormal]; 

    } 

} 

如何解决?

回答

2

尝试使用它。

- (void)respondsToTextField:(UITextField *)sender { 

    if ([sender.text isEqualToString:@""]) { 

     [UIView performWithoutAnimation:^{ 
      [_cancleOrConfirmButton setTitle:@"Cancel" forState:UIControlStateNormal]; 
      [_cancleOrConfirmButton layoutIfNeeded]; 
    }]; 

    }else { 

    [UIView performWithoutAnimation:^{ 
     [_cancleOrConfirmButton setTitle:@"Search" forState:UIControlStateNormal]; 
     [_cancleOrConfirmButton layoutIfNeeded]; 
    }]; 

    } 
} 
0

当您设置按钮标题时,如果不想要效果,您可以先设置titleLable.text

试试这个:

- (void)respondsToTextField:(UITextField *)sender { 

    if ([sender.text isEqualToString:@""]) { 

     _cancleOrConfirmButton.titleLabel.text = @"Cancel"; 
     [_cancleOrConfirmButton setTitle:@"Cancel" forState:UIControlStateNormal]; 

    }else { 

     _cancleOrConfirmButton.titleLabel.text = @"Search"; 
     [_cancleOrConfirmButton setTitle:@"Search" forState:UIControlStateNormal]; 

    } 

} 
0

试试这个它是工作在我的代码:

[UIView setAnimationsEnabled:NO]; 
[_cancleOrConfirmButton setTitle:@"Cancel" forState:UIControlStateNormal]; 
[UIView setAnimationsEnabled:YES];