2013-01-24 41 views
1

我有要求在iPhone導航欄中顯示未決通知的數量。外觀應該像通知徽章的外觀 - 但這些不是APNS通知。他們是從私人服務器發送的類似用途的。在UINavigationbar中顯示類似計數器的通知徽章

我嘗試在我的UINavigationbar中添加一個右/左按鈕(UIBarButtonItem),但它看起來好像在外觀上非常僵硬。我無法設置其寬度,字體等。參見我的代碼:

self.notifButton = [[UIBarButtonItem alloc] initWithTitle:@"0" style: 
        UIBarButtonItemStyleBordered target:self action:@selector(TouchNotif)]; 

NSMutableArray *items = [[NSMutableArray alloc] init]; 

[items addObject:self.notifButton]; 
self.navigationItem.rightBarButtonItems = items; 

由於其他2項也添加到條目數組,導航欄是雜亂的。他們的字體,寬度等我無法玩,或者我不知道我應該如何創建它們。

我的問題:

1)什麼是適應導航欄右側區域中至少3項正確方法是什麼?我問這是因爲我沒有找到一種方式來玩我使用的UIButtons的寬度和字體。 2)如果我想爲我的通知按鈕定製外觀(就像通知徽章一樣) - 是否有任何指針我如何製作它?要使用哪種控件,如何設置其允許在UINavigationBar內的框架和字體?

請幫忙。

回答

9

您需要使用initWithCustomView創建一個包含自定義視圖的UIBarButtonItem。 自定義視圖可以是一個帶數字徽章作爲子視圖的自定義UIButton。使用此自定義視圖,您還可以控制按鈕的寬度。

沒有公共API直接創建通知徽章。如果是標籤欄項目,您可以使用屬性badgeValue設置徽章 - 但不能與UIBarButtonItem。 在這裏你需要使用這個開源控制:MKNumberBadgeView

請注意,屬性rightBarButtonItems自iOS 5起可用。 如果您只需要一個項目,請設置rightBarButtonItem

+0

感謝和+1得到navigationController各自barbuttonitem了。 InitWithCustomView工作。然而,在獲得所需圖像後,我無法設置UIBarButtonItem的標題文本。例如,在我的代碼中,當我做self.notifButton.title = @「my title」時,調試器顯示的是正確的,但標題在圖像上不可見。該怎麼辦? –

+0

沒關係,我在這裏找到我的解決方案:http://stackoverflow.com/q/2507248/1506363 –

0
UIButton * buttton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[buttton setFrame:CGRectMake(285, 20, 20, 20)]; 
[buttton.layer setCornerRadius:10]; 
[buttton setTitle:@"23" forState:UIControlStateNormal]; 
[buttton.titleLabel setFont:[UIFont systemFontOfSize:12]]; 
[buttton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 
[buttton setBackgroundColor:[UIColor whiteColor]]; 
[self.navigationController.view addSubview:buttton]; 
+0

夥計們,希望這會幫助你。 –

0

首先由

let baritem = navigationItem.right/leftBarButtonItem 
baritem.badgeValue = "\(correspondingValues)" 
相關問題