自定义UITabBar

自定义UITabBar,想在系统tabBar基础上添加UIButton之类控件的话,可以通过kvc替换掉controller的tabBar:

[self setValue:tabBar forKeyPath:@"tabBar"];

在自定义UITabBar中layoutSubviews方法中布局控件。

但细心的同学会发现tabBar上子控件的响应范围超出了控件的frame,尤其在tabBar上控件较少的情况下。

如上图tabBarItem的frame为红色区域,但是整个绿色框内都会响应点击。

具体原因本人还没弄清楚,但还是有方法解决这个问题的:修改tabBar的itemPositioning属性。

Use UITabBarItemPositioningCenter to force the items to center with a default width (or the itemWidth, if set).

所有我们设置itemWidth为self.bounds.size.width / n,再设置itemPositioning为UITabBarItemPositioningCentered,控件的响应范围就和frame一致了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容