iOS开发系统导航栏左右上角按钮如何不需要定义就可以添加小红点

释放双眼,带上耳机,听听看~!

最近做一个需求,要在系统导航栏右上角按钮加上一个小红点,以前博主习惯使用自定义导航栏,所以并不怎么和系统的东西打交道,那怎么办?求助度娘呗,查了一会,都是自定义按钮,也没什么比较快捷的方法,于是就自己去看系统UIBarButtonItem,这一看不打紧,还真让博主找到了办法。

有这么一个属性:

@property(nullable, nonatomic,strong)  __kindof UIView     *customView;       // default is nil

默认为nil,当创建了UIBarButtonItem之后就存在了,所以我们是不是可以直接把红点加在这个customView上面?

于是进行了如下尝试;

UIBarButtonItem *saveItem = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"xxxxxx" target:self action:@selector(xxxxxxAction)];
self.navigationItem.rightBarButtonItem = saveItem;
UIView *redPoint = [[UIView alloc] initWithFrame:CGRectMake:(x, y, width, height)];
redPoint.backgroundColor = [UIColor red];
redPoint.layer.cornerRadius = 3;
redPoint.clipsToBounds = YES;
[saveItem.customView addSubview:redPoint];

哈,竟然成功了,如果需要删除这个点也很简单,直接:

//redPoint写成全局即可
[redPoint removeFromSuperview];

意外之喜,免了自定义的麻烦,而且可控度还非常高。

还有一种比较好的用法就是扩展UIBarButtonItem这个类,直接加上红点,增加布尔值直接控制,是不是很简单呢?

人已赞赏
iOS文章

ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1

2021-2-2 6:09:52

iOS文章

iOS开发打包静态framework后,引用时必须做的一件事,否则崩溃

2021-2-2 6:52:26

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索