ios - Switch doesn't work in SMSegmentViev -
i use frames smsegmentview, can not implement switch in numberofrowsinsection , cellforrowatindexpath ... when start in simulator pressing segment table not changed pressing index segment. can not understand error
import uikit class dailystandingviewcontroller: uiviewcontroller, uitableviewdatasource, uitableviewdelegate, smsegmentviewdelegate { @iboutlet var standingtableview: uitableview! let standingexersisename = ["БЕГ", "ПРЫЖКИ", "ПРИСЕДАНИЯ", "ОТЖИМАНИЯ", "ТОЛЧЕК"] let standingexersiseimage = ["bb", "bt", "ca", "co", "de"] let sittingexersisename = ["ПРИСЕД", "СКАЧКИ", "ПРИСЕДАНИЯ", "ОТЖИМАНИЯ", "ТОЛЧЕК"] let sittingexersiseimage = ["bb", "bt", "ca", "co", "de"] var segmentcontroler: smsegmentview! var alphasegmentview: smbasicsegmentview! var seletionbar: uiview = uiview() override func viewdidload() { super.viewdidload() //СОЗДАЕМ СЕГМЕНТ self.view.frame = cgrectmake(-5.0 , 0.0, self.view.frame.size.width + 10, 40.0) self.view.backgroundcolor = uicolor(red: 241.0/255.0, green: 83.0/255.0, blue: 84.0/255.0, alpha: 1.0) let segmentframe = cgrect(x: -5.0 , y: 0.0, width: self.view.frame.size.width + 10, height: 40.0) self.segmentcontroler = smsegmentview(frame: segmentframe, separatorcolour: uicolor(red: 241.0/255.0, green: 83.0/255.0, blue: 84.0/255.0, alpha: 1.0), separatorwidth: 0.0, segmentproperties: [keysegmenttitlefont: uifont.systemfontofsize(16.0), keysegmentonselectioncolour: uicolor(red: 241.0/255.0, green: 83.0/255.0, blue: 84.0/255.0, alpha: 1.0), keysegmentoffselectioncolour: uicolor(red: 241.0/255.0, green: 83.0/255.0, blue: 84.0/255.0, alpha: 1.0)]) self.segmentcontroler.delegate = self self.segmentcontroler.addsegmentwithtitle("standing", onselectionimage: nil, offselectionimage: nil) self.segmentcontroler.addsegmentwithtitle("sitting", onselectionimage: nil, offselectionimage: nil) self.segmentcontroler.layer.bordercolor = uicolor(red: 241.0/255.0, green: 83.0/255.0, blue: 84.0/255.0, alpha: 1.0).cgcolor self.seletionbar.frame = cgrect(x: 0.0, y: 33.5, width: self.segmentcontroler.frame.size.width/cgfloat(self.segmentcontroler.numberofsegments), height: 6.0) self.seletionbar.backgroundcolor = uicolor.whitecolor() self.segmentcontroler.selectsegmentatindex(0) self.view.addsubview(self.segmentcontroler) } func segmentview(segmentview: smbasicsegmentview, didselectsegmentatindex index: int) { let placeselectionbar = { () -> () in var barframe = self.seletionbar.frame barframe.origin.x = barframe.size.width * cgfloat(index) self.seletionbar.frame = barframe } if self.seletionbar.superview == nil { self.segmentcontroler.addsubview(self.seletionbar) placeselectionbar() } else { uiview.animatewithduration(0.3, animations: { placeselectionbar() }) } } override func didreceivememorywarning() { super.didreceivememorywarning() // dispose of resources can recreated. } func tableview(tableview: uitableview, numberofrowsinsection section: int) -> int { var returnvalue = 0 switch (segmentcontroler.indexofselectedsegment) { case 0: // not work on simulator returnvalue = standingexersisename.count break case 1: // not work on simulator returnvalue = sittingexersisename.count break default: break } return returnvalue } func tableview(tableview: uitableview, didselectrowatindexpath indexpath: nsindexpath) { } func tableview(tableview: uitableview, cellforrowatindexpath indexpath: nsindexpath) -> uitableviewcell { let mycell = tableview.dequeuereusablecellwithidentifier("mycell", forindexpath: indexpath) switch (segmentcontroler.indexofselectedsegment) { case 0: // not work on simulator mycell.textlabel?.text = standingexersisename[indexpath.row] mycell.imageview!.image = uiimage(named:standingexersiseimage[indexpath.row]) break case 1: // not work on simulator mycell.textlabel?.text = sittingexersisename[indexpath.row] mycell.imageview!.image = uiimage(named:sittingexersiseimage[indexpath.row]) break default: break } return mycell }
we must add didselectsegmentatindex "standingtableview.reloaddata ()"
Comments
Post a Comment