固定UITabBar的image大小

最近有需求需要在UITabBar上设置网络图片,发现UITabBar的image的size是根据网络返回图片的大小来设置的,在不同分辨率的手机上就会出现图片过大或过小的情况.
通过遍历UITabBar的子视图找到如下解决方案

- (void)modifyTabbarImageViewSize{
    for (UIView *subview in self.tabBar.subviews) {
        if (![subview isKindOfClass: NSClassFromString(@"UITabBarButton")]) continue;
        for (UIView *subsubview in subview.subviews) {
            if (![subsubview isKindOfClass: NSClassFromString(@"UITabBarSwappableImageView")]) continue;
            CGFloat width = 20;
            subsubview.bounds = CGRectMake(0, 0, width, width);
        }
    }
}

通过遍历找到tabBar上的imageView,在设置imageView的时候,也就是继承了UITabBarController的控制器的viewWillLayoutSubviews方法里调用上述方法就可以设置imageView的大小了.
但是,当点击tabBar的时候发现图片又变回原本的大小了.
通过查看tabBar的文档,发现了- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item 方法,该方法在点击tabBar的时候会被触发,在此方法里再调用一次modifyTabbarImageViewSize ,问题解决!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、UITabBarController以其相关控件之间的关系 @interface UITabBarContro...
    西门淋雨阅读 3,149评论 0 1
  • 前言 很多时候,系统原生的 UITabBar 并不能满足我们的需求,譬如我们想要给图标做动态的改变,或者比较炫一点...
    四月_Hsu阅读 5,107评论 1 6
  • 我躺在台灯下 搬开书 在13页亲吻 那页有一个它 它? 身后有树林 河水啊 太阳 还夹着老旧的照片
    越官人阅读 131评论 0 2
  • “性格决定命运”“一种健全的性格比一百种智慧都更有力量” 这两句话都讲的是性格对人的一生起着至关重要的作用,有什么...
    皮妈_闫雷阅读 1,266评论 0 3
  • 在芸芸众生中 你是如此的平凡 甚至被淹没在人海 不论你是年轻貌美 亦或是银丝偷偷爬上你的黑发 不论你历经了多少世间...
    女郭靖阅读 248评论 0 1