不多解釋,網上這種類似的篩選器已經很多了,最近寫專案時用到了,就簡單封裝了乙個,自我感覺挺好用的,可定義性強,用起來很方便就拿出來分享一下!swift版
看圖:
}//正常狀態下字型顏色
var titlenormalcolor : uicolor! }}
}//選中狀態下字型顏色
var titleselectedcolor : uicolor!
}self.indicatorview
.backgroundcolor = self.titleselectedcolor}}
//正常狀態下按鈕背景顏色
var normalbackgroundcolor : uicolor! }}
}}//選中狀態下按鈕的背景色
var selectedbackgroundcolor : uicolor! }}
}}//正常狀態下按鈕的背景
var normalbcakgroundimage : uiimage! }}
}//選中狀態下按鈕的背景
var selectedbcakgroundimage : uiimage! }}
}//是否顯示選中指示條
var isshowindicator : bool!
}//選中指示條的寬度
var indicatorviewheight : cgfloat!
}//字型大小
var titlefont : uifont!
}}else}}
//建立button
fileprivate func creatbtn()
x = 0
for i in
0...titlearray
.count else
if self.titleselectedcolor == nil else
if self.normalbcakgroundimage == nil else
if self.selectedbcakgroundimage == nil else
if self.normalbackgroundcolor == nil else
button.clipstobounds = true
var width : cgfloat = 0
width = titlesize.width + 20
button.frame = cgrect.init(x: x, y: 0, width: width, height: self.bounds
.size
.height)
self.addsubview(button)
button.addtarget(self, action: #selector(self.selectedbtnaction(sender:)), for: .touchupinside)
if i == (self.selectedindex == nil ? 0 : self.selectedindex) else
}x = x + width
}self.contentsize = cgsize.init(width: x, height: self.bounds
.size
.height)
self.bringsubview(tofront: self.indicatorview)
self.indicatorview
.ishidden = self.isshowindicator == nil ? false : !self.isshowindicator
}@objc fileprivate func selectedbtnaction(sender:uibutton)
}sender.isselected = true
let bound = self.indicatorview
.bounds
uiview.animate(withduration: 0.2)
let rect = self.convert(cgrect.init(x: sender.frame
.origin
.x - self.frame
.size
.width/2, y: sender.frame
.origin
.y, width: self.frame
.size
.width+10, height: sender.frame
.size
.height), to: self)
self.scrollrecttovisible(rect, animated: true)
sender.backgroundcolor = selectedbackgroundcolor
if self.selectdelegate != nil
}override init(frame: cgrect)
required init?(coder adecoder: nscoder)
}用法:
override func viewdidload()
func selectsegmentaction(index: int)
一款簡單實用的文字輪播器
用處 為了解決文字過長顯示不全的雞肋,進行如led屏的輪播機制,進行輪播,將所有文字展現出來。dctextcirclelabel是我封裝的文字輪播器,直接載入到view 上面使用即可。dctextcirclelabel.h檔案裡 import inte ce dctextcirclelabel ui...
一款免費的文字編輯器Notepad
notepad 是 windows作業系統下的一套文字編輯器 軟體版權許可證 gpl 有完整的中文化介面及支援多國語言編寫的功能 utf8技術 notepad 功能比 windows 中的 notepad 記事本 強大,除了可以用來製作一般的純文字說明檔案,也十分適合編寫電腦程式 notepad 不...
推薦一款好用的WSL終端模擬器
windows 10 中包含了乙個 wsl windows subsystem for linux 子系統,我們可以在其中執行未經修改過的原生 linux elf 可執行檔案。利用它我們可以做很多事情,對開發人員和普通使用者都是如此。當然對開發人員的吸引力更大一些,因為這意味著在一些情況,不再需要使...