tôi sử dụng đoạn mã sau như một phần mở rộng để UINavigationController
để đẩy một bộ điều khiển vùng đang xem với một hình ảnh động tùy chỉnh:Đẩy một UITableViewController với hình ảnh động tùy chỉnh luôn sinh động UINavigationItem Tiêu đề
@implementation UINavigationController (PushAnimation)
- (void)pushViewController:(UIViewController*)controller withTransition:(UIViewAnimationTransition)transition
{
[UIView beginAnimations:nil context:NULL];
[self pushViewController:controller animated:NO];
[UIView setAnimationDuration:1.0];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationTransition:transition forView:self.view cache:YES];
[UIView commitAnimations];
}
@end
Với bộ nhớ đệm được kích hoạt, tôi nhận được một hành vi hoạt hình lạ khi đẩy UITableViewController
. Tiêu đề của chế độ xem được đẩy xuất hiện sau khi hoạt ảnh tùy chỉnh hoàn tất. Với phong cách chuyển đổi UIViewAnimationTransitionNone
, nó trở nên rõ ràng rằng tiêu đề chính nó là hoạt hình. Nó được di chuyển từ góc trên cùng bên trái của màn hình vào giữa của UINavigationBar
.
Khi bộ đệm ẩn bị tắt, hoạt ảnh này không hiển thị do tốc độ của nó, nhưng tốc độ khung hình giảm đáng kể.
Làm cách nào để ngăn tiêu đề hoạt ảnh?
Tôi nghĩ rằng hoạt ảnh của tiêu đề đang diễn ra trong mã 'UINavigationBar'. Một ý tưởng cũng sẽ là phân lớp và thay đổi hành vi mặc định – adig