我可能在這裏做錯了什麼,因爲這看起來有點愚蠢。
我在我的UINavigationController上設置了一個自定義titleView(以UILabel的形式),它在每個頁面上都是相同的。爲了促進這一點,我在我的應用程序委託中創建了一個函數來正確顯示標籤。然後,在我將其推入導航堆棧之後,我會在任何子視圖上調用此函數。
下面的代碼(這可能更有意義比我的解釋):UINavigationController上的自定義titleView動畫不正確
//In MyAppDelegate.m:
- (void)showTitleForNavigationController:(UINavigationController*) navController {
UILabel *label = [[UILabel alloc] init];
// set up label attributes
// ...
[label sizeToFit]; //without this line my label won't show at all
[navController.navigationBar.topItem setTitleView:label];
[label release];
}
// In SomeViewController.m, when pushing another controller onto the stack:
UIViewController *otherViewController = //initialize other view controller;
[self.navigationController pushViewController:otherViewController animated:YES];
[(MyAppDelegate*)[[UIApplication sharedApplication] delegate] showTitleForNavigationController:otherViewController.navigationController];
我的問題是,當我推下一個視圖控制器壓入堆棧,以及新的控制器滑過順利,整個持續時間在動畫結束後,標籤貼到左上角,最後在最後貼緊到位。它看起來非常奇怪和醜陋。 如何正確設置標籤,使其從下一個視圖平滑滑動?當然,這是簡單的,我失蹤了......
titleLabel是否會自行調整大小? – leftspin 2012-01-15 06:05:21
如果我沒有記錯的話,我有一個函數可以在文本被改變時調整標籤的大小。 – ylva 2012-01-16 17:34:47