美文网首页
iOS实战【好书】之segmentController与Drop

iOS实战【好书】之segmentController与Drop

作者: xiongsirui | 来源:发表于2016-07-06 02:11 被阅读443次

segmentController

为了设计《好书》的分类栏,需要用Segment来切换不同的View;这里我们用到了AKSegmentController第三方库:

   let buttonArray1 = [
            ["image":"ledger","title":"文学","font":MY_FONT],
            ["image":"drama masks","title":"人文社科","font":MY_FONT],
            ["image":"aperture","title":"生活","font":MY_FONT],
        ]
    self.segmentController1 = AKSegmentedControl(frame: CGRectMake(10,60,SCREEN_WIDTH-20,37))
        self.segmentController1?.initButtonWithTitleandImage(buttonArray1)
self.view.addSubview(self.segmentController1!)

首先创建一个按钮数组,再初始化segmentController,并添加进view中。
由于项目中有两个controller,为了避免两个controller的按钮同时按的情况,需要如下代码:

    func segmentControllerAction(segment:AKSegmentedControl){
        let index = segment.selectedIndexes.firstIndex
        print(index)
        if segment == self.segmentController1{
            self.segmentController2?.setSelectedIndex(3)
        }else{
            self.segmentController1?.setSelectedIndex(3)
        }
    }

DropDownMenu

项目中需要点击后可以选择的下拉分类,这里我们用的是IGLDropDownMenu;
先建立点击不同segment后的DropDownMenu分类:

        switch (index){
            case 0:
                self.createDropMenu(self.literatureArray1, array2: self.literatureArray2)
                break
            case 1:
                self.createDropMenu(self.humanitiesArray1, array2: self.humanitiesArray2)
                break
            case 2:
                self.createDropMenu(self.livelihoodArray1, array2: self.livelihoodArray2)
                break
            case 3:
                self.createDropMenu(self.economiesArray1, array2: self.economiesArray2)
                break
            case 4:
                self.createDropMenu(self.technologyArray1, array2: self.technologyArray2)
                break
            case 5:
                self.createDropMenu(self.NetworkArray1, array2: self.NetworkArray2)
                break
            default:
                break
        }

其次建立并初始化DropDownMenu:

func createDropMenu(array1:Array<NSDictionary>,array2:Array<NSDictionary>){
        let dropDownItem1 = NSMutableArray()
        for var i = 0;i<array1.count;i++ {
            let dict = array1[i]
            let item = IGLDropDownItem()
            item.text = dict["title"] as? String
            dropDownItem1.addObject(item)
        }
        
        let dropDownItem2 = NSMutableArray()
        for var i = 0;i<array2.count;i++ {
            let dict = array2[i]
            let item = IGLDropDownItem()
            item.text = dict["title"] as? String
            dropDownItem2.addObject(item)
        }
        
        self.dropDownMenu1?.removeFromSuperview()
        self.dropDownMenu1 = IGLDropDownMenu()
        self.dropDownMenu1?.menuText = "点我,展开详细列表"
        self.dropDownMenu1?.menuButton.textLabel.adjustsFontSizeToFitWidth = true
        self.dropDownMenu1?.menuButton.textLabel.textColor = RGB(38, g: 82, b: 67)
        self.dropDownMenu1?.paddingLeft = 15
        self.dropDownMenu1?.delegate = self
        self.dropDownMenu1?.type = .Stack
        self.dropDownMenu1?.itemAnimationDelay = 0.1
        self.dropDownMenu1?.gutterY = 5
        self.dropDownMenu1?.dropDownItems = dropDownItem1 as [AnyObject]
        self.dropDownMenu1?.frame = CGRectMake(20, 150, SCREEN_WIDTH/2-30, (SCREEN_HEIGHT-200)/7)
        self.view.addSubview(self.dropDownMenu1!)
        self.dropDownMenu1?.reloadView()
        
        
        self.dropDownMenu2?.removeFromSuperview()
        self.dropDownMenu2 = IGLDropDownMenu()
        self.dropDownMenu2?.menuText = "点我,展开详细列表"
        self.dropDownMenu2?.menuButton.textLabel.adjustsFontSizeToFitWidth = true
        self.dropDownMenu2?.menuButton.textLabel.textColor = RGB(38, g: 82, b: 67)
        self.dropDownMenu2?.paddingLeft = 15
        self.dropDownMenu2?.delegate = self
        self.dropDownMenu2?.type = .Stack
        self.dropDownMenu2?.itemAnimationDelay = 0.1
        self.dropDownMenu2?.gutterY = 5
        self.dropDownMenu2?.dropDownItems = dropDownItem2 as [AnyObject]
        self.dropDownMenu2?.frame = CGRectMake(SCREEN_WIDTH/2+10, 150, SCREEN_WIDTH/2-30, (SCREEN_HEIGHT-200)/7)
        self.view.addSubview(self.dropDownMenu2!)
        self.dropDownMenu2?.reloadView()
    
    }

不仅如此,还需实现一个dropdownmenu的代理,用于点击以后两边的menubutton均是需要的值:

    func dropDownMenu(dropDownMenu: IGLDropDownMenu!, selectedItemAtIndex index: Int) {
        if dropDownMenu == self.dropDownMenu1 {
            let item = self.dropDownMenu1?.dropDownItems[index] as? IGLDropDownItem
            self.detailType = (item?.text)!
            self.dropDownMenu2?.menuButton.text = self.detailType
        }else{
            let item = self.dropDownMenu2?.dropDownItems[index] as? IGLDropDownItem
            self.detailType = (item?.text)!
            self.dropDownMenu1?.menuButton.text = self.detailType
        }
    }

相关文章

网友评论

      本文标题:iOS实战【好书】之segmentController与Drop

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