美文网首页
固定UITabBar的image大小

固定UITabBar的image大小

作者: 伏特加 | 来源:发表于2018-11-05 13:57 被阅读5次

    最近有需求需要在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 ,问题解决!

    相关文章

      网友评论

          本文标题:固定UITabBar的image大小

          本文链接:https://www.haomeiwen.com/subject/ervozftx.html