[英]UINavigationBar titleTextAttributes - not applied during transitions
[英]Getting the default titleTextAttributes for UINavigationBar
我想在我的應用程序中使用自定義titleView作為導航欄,以便用戶可以編輯它。 我正在嘗試獲取默認字體/對齊/等,以便我可以將其應用於我的新視圖,因此它看起來與普通的導航欄標題相同。
我正在使用
NSMutableDictionary *myDict = [[NSMutableDictionary alloc] initWithDictionary:self.navigationController.navigationBar.titleTextAttributes];
NSLog(@"%@", myDict);
但這只是顯示一個空字典。 我已經查看了stackoverflow上的其他答案,建議這應該返回默認字體。
難道我做錯了什么? 或者在iOS7中改變了嗎?
編輯 :感謝下面的caglar,我已經更新了我的代碼:
// Get the default title label
UILabel *navigationTitleLabel;
for (UIView *sv in self.navigationController.navigationBar.subviews)
{
if (sv.subviews.count > 0 && [sv.subviews[0] isKindOfClass:[UILabel class]])
{
navigationTitleLabel = (UILabel *)sv.subviews[0];
break;
}
}
// Set the new text field to have the same attributes as the default title label
textField.font = navigationTitleLabel.font;
textField.textColor = navigationTitleLabel.textColor;
textField.textAlignment = NSTextAlignmentCenter;
self.navigationItem.titleView = textField;
您可以訪問導航欄的子視圖,因為UINavigationBar
是UIView
子類。 這適用於iOS 7.在舊版本中,子視圖訂單可能與此不同。 但是,想法是一樣的,瀏覽UINavigationBar
子視圖並達到標題。
for (UIView *sv in self.navigationController.navigationBar.subviews)
{
if (sv.subviews.count > 0 && [sv.subviews[0] isKindOfClass:[UILabel class]])
{
self.navigationTitleLabel = (UILabel *)sv.subviews[0];
break;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.