代碼實現類似設置界面,是這樣做嗎?

已邀請:

東方快車謀殺案txt

贊同來自:



代碼如下:

感覺好繁瑣哦。


class SearchViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

var searchTableView: UITableView?
var genderSegment: UISegmentedControl?

override func viewDidLoad() {
super.viewDidLoad()

self.title = "Search"

self.searchTableView = UITableView(frame: CGRectMake(0, 0, self.view.frame.width, self.view.frame.height), style: UITableViewStyle.Grouped)
self.searchTableView?.delegate = self
self.searchTableView?.dataSource = self

self.view.addSubview(self.searchTableView!)
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 5
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = UITableViewCell()
cell.selectionStyle = UITableViewCellSelectionStyle.None

switch indexPath.row {
case 0:
cell.textLabel?.text = "Gender"

self.genderSegment = UISegmentedControl(items: ["Boy", "Girl", "All"])
self.genderSegment?.frame.origin.x = self.view.frame.width - self.genderSegment!.frame.width - 10
self.genderSegment?.frame.origin.y = cell.frame.height / 2 - self.genderSegment!.frame.height / 2

cell.contentView.addSubview(self.genderSegment!)

default:
cell.textLabel?.text = nil
}

return cell
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}


}


--cut--


callmewhy在2014-12-06 04:34:08回答到:


這是代碼實現的方式,如果是靜態的TableView可以直接在StoryBoard裡拖動Cell進去的=。=那麼你一行代碼都不用寫的。。。


===


為什麼點踩啊,這個問題還行啊,沒搞懂。請點踩的同學出來說明一下?


LucasHuang在2014-12-08 00:41:55回答到:


如果確定是靜態的話就都可以。

但是如果你還會更新應用程序的話,從工程學角度說,Dynamic Programming比hard coding要好。


rickytan在2014-12-13 11:55:50回答到:


應該這樣的:


objcfunc tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = UITableViewCell()
cell.selectionStyle = UITableViewCellSelectionStyle.None

switch indexPath.row {
case 0:
cell.textLabel?.text = "Gender"
self.genderSegment = self.genderSegment ?? UISegmentedControl(items: ["Boy", "Girl", "All"])
cell.accessoryView = self.genderSegment

default:
cell.textLabel?.text = nil
}

return cell
}


酷酷的哀殿在2014-12-10 09:27:03回答到:


因為(大部分應用的)設置界面的內容已經固定,所以建議使用靜態的tableView,通過拖拽來實現。這樣既可以保證代碼簡介又不容易出現問題。


sizzlepop在2014-12-14 22:49:15回答到:


gender這個label應該是cell的title吧。


JellyBool在2014-12-06 16:33:39回答到:


首先,我覺得樓主你既然決定入這一行瞭,還怕這點繁瑣麼?這麼一點代碼能達到這樣的功能已經很OK,而且我覺得肯定是引用瞭某些UI類庫的吧,你寫的代碼又有多少呢?

我想問的是:你問這個問題究竟希望會得到怎樣的回答?是解決問題?得到安慰?發現改變世界的那一行簡單的代碼?還是你這個問題你隻是想來秀一下你的代碼?這些種種我再怎麼考慮都覺得這個問題都不應該在這裡出現,或者說代碼實現類似設置界面,是這樣做嗎根本就不是一個問題


好吧,我承認,我是來吐槽的。雖然我不懂OC,不懂Swift

要回復問題請先登錄註冊