Displaying notification badge like counter in UINavigationbar

后端 未结 3 1361
慢半拍i
慢半拍i 2021-01-25 07:09

I have a requirement to display number of pending notifications in iPhone navigation bar. The appearance should be like that of notification badge - but these are not APNS notif

相关标签:
3条回答
  • 2021-01-25 07:42

    You need to create a UIBarButtonItem that contains a custom view using initWithCustomView. The custom view could be a custom UIButton with a number badge as subview. With this custom view you can also control the width of the buttons.

    There is no public API to create a notification badge directly. In case of a tab bar item you could set a badge using the property badgeValue - but not with UIBarButtonItem. Here you need to use this open source control: MKNumberBadgeView.

    Note that the property rightBarButtonItems is available since iOS 5. If you only need one item set the rightBarButtonItem instead.

    0 讨论(0)
  • 2021-01-25 07:43
    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)
  • 2021-01-25 07:43

    First get the respective barbuttonitem in navigationController by

    let baritem = navigationItem.right/leftBarButtonItem
    baritem.badgeValue = "\(correspondingValues)"
    
    0 讨论(0)
提交回复
热议问题