我想要动态地改变UISearchBar的位置,但是当我改变UISearchBar的frame或bounds属性时,没有动画效果(中心点和透明度会自动更新)。
这是iOS SDK 4.2,难道有Bug吗?我很困惑...
我想要动态地改变UISearchBar的位置,但是当我改变UISearchBar的frame或bounds属性时,没有动画效果(中心点和透明度会自动更新)。
这是iOS SDK 4.2,难道有Bug吗?我很困惑...
问题在于某些内部搜索栏视图会强制调整大小而忽略动画效果。
以下方法适用于我 -
[UIView animateWithDuration:0.2 animations:^ {
[searchBar setFrame:searchBarFrame];
[searchBar setNeedsLayout];
}];
这里的searchBarFrame
是一个需要设置的框架(在搜索栏第一次调整大小之前我会先保存它)
UIViewAnimationOptionLayoutSubviews
选项:[UIView animateWithDuration:.25
delay:0
options:UIViewAnimationOptionLayoutSubviews
animations:^{
CGRect frame = searchBar.frame;
frame.size.width = newWidth;
searchBar.frame = frame;
} completion:nil
];
试试这个:
[UIView animateWithDuration:0.3 animations:^{
self.searchDisplayController.searchBar.frame = CGRectMake(0, 200, 320, 44);
}];