2010-11-18 36 views
9

Tôi có một ViewController quản lý chế độ xem trong đó tôi có Chế độ xem bảng, ImageView và Thanh điều hướng. Khi tôi đặt nó ở chế độ ngang, Thanh Điều hướng không đổi kích thước thành 32, nó vẫn còn ở 44 Tôi đã thử sử dụng chức năng tự động hóa IB trước khi thành công, sau đó tôi đã cố gắng đặt mã này trong ViewControllervấn đề chế độ ngang với thanh điều hướng

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration { 
    //[super willAnimateRotationToInterfaceOrientation:orientation duration:duration]; 
    CGRect frame = self.navigationController.navigationBar.frame; 
    if (UIInterfaceOrientationIsPortrait(orientation)) { 
     frame.size.height = 44; 
    } else { 
     frame.size.height = 32; 
    } 
    self.navigationController.navigationBar.frame = frame; 
} 

nhưng không có gì. Tôi làm cách nào để giải quyết vấn đề này?

Trả lời

7

Tôi đã phạm sai lầm, không có một navigationController, vì vậy tôi liên kết thanh điều hướng trong IB với ổ cắm navbar trong mã và tôi đã sử dụng

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration { 
    [super willAnimateRotationToInterfaceOrientation:orientation duration:duration]; 
    CGRect frame = self.navBar.frame; 
    if (UIInterfaceOrientationIsPortrait(orientation)) { 
     frame.size.height = 44; 
    } else { 
     frame.size.height = 32; 
    } 
    self.navBar.frame = frame; 
} 

Nó hoạt động bây giờ, tôi đã chỉ có vấn đề với chế độ xem hình ảnh

+4

Bạn cần phải gọi siêu trong phương thức này, bạn không nên nhận xét. – titaniumdecoy

0

Tôi có cùng một vấn đề với hình nền được tùy chỉnh cho thanh điều hướng trên cùng.

Hình ảnh ngang của tôi không đúng chiều cao, cao 44px thay vì 32px (giống với phiên bản @ 2x, nó là 88px thay vì 64). Sau khi cắt hình ảnh, thanh trên cùng có chiều cao chính xác.

Các vấn đề liên quan