// 實現tableview單選
import uikit
class viewcontroller: uiviewcontroller {
var tableview: uitableview!
override func viewdidload() {
super.viewdidload()
tableview = uitableview(frame: cgrectmake(0, 0, uiscreen.mainscreen().bounds.width, uiscreen.mainscreen().bounds.height), style: .plain)
tableview.delegate = self
tableview.datasource = self
self.view.addsubview(tableview)
extension viewcontroller: uitableviewdatasource,uitableviewdelegate {
func tableview(tableview: uitableview, numberofrowsinsection section: int) -> int {
return 20
func tableview(tableview: uitableview, cellforrowatindexpath indexpath: nsindexpath) -> uitableviewcell {
let cell = uitableviewcell(style: .default, reuseidentifier: "cell")
cell.textlabel?.text = "123"
return cell
//獲取將要選擇的單元格的路徑
func tableview(tableview: uitableview, didselectrowatindexpath indexpath: nsindexpath){
//取消選中的樣式
tableview.deselectrowatindexpath(indexpath, animated: true)
//獲取當前選中的單元格
let cell:uitableviewcell! = tableview.cellforrowatindexpath(indexpath)
//返回所有單元格
//遍歷取消所有單元格樣式
var arry = tableview.visiblecells
for i in 0 ..< arry.count {
let cells: uitableviewcell = arry[i]
cells.accessorytype = .none
//設定選中的單元格樣式
cell.accessorytype = .checkmark
autolayout 計算tableView的高度
在ios7以後,出現了自動計算高度的方法。systemlayoutsizefittingsize。但是這個得到的是contentview的高度,所以cell的高度還要再 1.在計算出高度之後,可以儲存在陣列中,或者在這個cell中有關cgfloat屬性,來儲存當前的cell的model所佔cell的...
TableVie優化方法和優化機制
1,uitableview的優化方法 快取高度,非同步繪製,減少層級,hide,避免離屏渲染 1 快取高度 當我們建立frame模型的時候,計算出來cell的高度的時候,我們可以將cell的高度快取到字典裡面,以cell的indexpath和identifier作為為key。非同步繪製 在cell上...
貪心 Swift實現
求解最優化問題得演算法通常需要經過一系列得步驟,每個步驟都面臨多種選擇。在許多最優化問題上使用動態規劃其實會有殺雞用牛刀的感覺。貪心演算法 greedy algorithm 保證每一步都作出當時看起來的最佳的選擇,換句話說就是保證區域性最優選。確定問題的最優子結構 設計乙個遞迴演算法 證明我們每做乙...