美文网首页
Swift中uitabbar选中背景图适配(selectionI

Swift中uitabbar选中背景图适配(selectionI

作者: ing_69c7 | 来源:发表于2018-05-09 15:52 被阅读0次

    选中的背景是图片类型,我的项目是一个颜色渐变的图片,正常使用时切三套图可以,可是横屏后,图片就不够大了,还有ipad等。

    上代码:

    overridefuncviewDidLoad() {

            super.viewDidLoad()

    //        self.tabBar.clipsToBounds = true

    //        self.tabBar.selectionIndicatorImage = UtilitiesTools.shared().tabSelectionImage(size: CGSize.init(width: screenWidth, height: 49))

            print(screenWidth,self.tabBar.bounds.size.height)

            UITabBarItem.appearance().setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.init(red: 1/255.0, green: 142/255.0, blue: 200/255.0, alpha: 1)], for: .normal)

            UITabBarItem.appearance().setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.white], for: .selected)

            tabLine1.image=  imageLiteral(resourceName: "img_tab_parting")

            tabLine2.image=  imageLiteral(resourceName: "img_tab_parting")

            self.tabBar.addSubview(tabLine1)

            self.tabBar.addSubview(tabLine2)

            tabSelectIma.image=UtilitiesTools.shared().tabSelectionImage(size:CGSize.init(width:screenWidth, height:49))

            tabSelectIma.tag = 100

            self.tabBar.addSubview(tabSelectIma)

            self.tabBar.sendSubview(toBack:tabSelectIma)

            self.setMyTabButton()

            //隐藏原生UITabBarButton

            fortabBarButton:UIViewinself.tabBar.subviews{

                iftabBarButton.isKind(of:NSClassFromString("UITabBarButton")!) {

                    tabBarButton.alpha=0

                }

            }

            // Do any additional setup after loading the view.

        }

    //画tabbarButton

        funcsetMyTabButton() {

            3.timesNum{ (time)in

                lettabButton =UIButton.init(frame:CGRect.init(x:screenWidth/3*CGFloat.init(time-1), y:0, width:screenWidth/3, height:49))

                iftime ==1{

                    tabButton.setImage( imageLiteral(resourceName: "Jurisdiction_customer_pressed"), for:UIControlState.normal)

                }else{

                    tabButton.setImage([ imageLiteral(resourceName: "Jurisdiction_customer_normal"), imageLiteral(resourceName: "Visit_rankinge_normal"), imageLiteral(resourceName: "Sales_architecture_normal")][time-1], for:UIControlState.normal)

                    tabButton.setTitleColor(UIColor.init(red:1/255.0, green:142/255.0, blue:200/255.0, alpha:1), for:UIControlState.normal)

                }

                tabButton.imageEdgeInsets.left=-10

                tabButton.titleLabel?.font=UIFont.boldSystemFont(ofSize:15)

                tabButton.setTitle(["辖区客户","拜访排名","销售架构"][time-1], for:UIControlState.normal)

                tabButton.tag=110+time-1

                tabButton.addTarget(self, action:#selector(tabbarSelect(sender:)), for:UIControlEvents.touchUpInside)

                self.tabBar.addSubview(tabButton)

            }

        }

    //点击事件

        varbeforeTag:Int=-1

        @objcfunctabbarSelect(sender:UIButton) {

            ifbeforeTag!=-1{

                lettabButton:UIButton=self.view.viewWithTag(beforeTag)as!UIButton

                tabButton.setImage([ imageLiteral(resourceName: "Jurisdiction_customer_normal"), imageLiteral(resourceName: "Visit_rankinge_normal"), imageLiteral(resourceName: "Sales_architecture_normal")][beforeTag-110], for:UIControlState.normal)

                tabButton.setTitleColor(UIColor.init(red:1/255.0, green:142/255.0, blue:200/255.0, alpha:1), for:UIControlState.normal)

                sender.setImage([  imageLiteral(resourceName: "Jurisdiction_customer_pressed"), imageLiteral(resourceName: "Visit_rankinge_pressed"), imageLiteral(resourceName: "Sales_architecture_pressed")][sender.tag-110], for:UIControlState.normal)

                sender.setTitleColor(UIColor.white, for: UIControlState.normal)

            }else{

                ifsender.tag!=110{

                    sender.setImage([  imageLiteral(resourceName: "Jurisdiction_customer_pressed"), imageLiteral(resourceName: "Sales_architecture_pressed"), imageLiteral(resourceName: "Visit_rankinge_pressed")][sender.tag-110], for:UIControlState.normal)

                    sender.setTitleColor(UIColor.white, for:UIControlState.normal)

                    lettabButton:UIButton=self.view.viewWithTag(110)as!UIButton

                    tabButton.setImage( imageLiteral(resourceName: "Jurisdiction_customer_normal"), for:UIControlState.normal)

                    tabButton.setTitleColor(UIColor.init(red:1/255.0, green:142/255.0, blue:200/255.0, alpha:1), for:UIControlState.normal)

                }

            }

            beforeTag= sender.tag

            tabSelectIma.tag= sender.tag-10

            UIView.animate(withDuration:0.2) {

                self.tabSelectIma.frame=CGRect.init(x:screenWidth/3*CGFloat.init(sender.tag-110), y:0, width:self.tabSelectIma.bounds.size.width, height:49)

            }

        }

    //横屏代理

        overridefuncviewWillTransition(to size:CGSize, with coordinator:UIViewControllerTransitionCoordinator) {

            screenWidth= size.width

            tabSelectIma.image=UtilitiesTools.shared().tabSelectionImage(size: size)

            tabSelectIma.frame=CGRect.init(x: size.width/3*CGFloat.init(tabSelectIma.tag-100), y:0, width: size.width/3, height:49)

            tabLine1.frame=CGRect.init(x: size.width/3, y:0, width:  imageLiteral(resourceName: "img_tab_parting").size.width, height:  imageLiteral(resourceName: "img_tab_parting").size.height)

            tabLine2.frame=CGRect.init(x: size.width/3*2, y:0, width:  imageLiteral(resourceName: "img_tab_parting").size.width, height:  imageLiteral(resourceName: "img_tab_parting").size.height)

    //        self.tabBar.frame = CGRect.init(x: 0, y: 49, width: size.width, height: 49.0)

    //        print(self.tabBar.frame)

            ifsize.width> size.height{

                3.timesNum{ (time)in

                    letbarButton1 =self.view.viewWithTag(110+time-1)

                    if#available(iOS11.0, *) {

                        barButton1?.frame=CGRect.init(x:screenWidth/3*CGFloat.init(time-1), y:-7, width:screenWidth/3, height:49)

                    }else{

                        barButton1?.frame=CGRect.init(x:screenWidth/3*CGFloat.init(time-1), y:0, width:screenWidth/3, height:49)

                    }

                }

            }else{

                3.timesNum{ (time)in

                    letbarButton1 =self.view.viewWithTag(110+time-1)

                    barButton1?.frame=CGRect.init(x:screenWidth/3*CGFloat.init(time-1), y:0, width:screenWidth/3, height:49)

                }

            }

        }

    相关文章

      网友评论

          本文标题:Swift中uitabbar选中背景图适配(selectionI

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