1
根據在Cocoa Touch中大量應用的Model-View-Controller模式,UIViewControllers應該總是處理幕後具體UIView行爲的邏輯。UITableView的實現,遵循MVC模式
我很好奇蘋果如何實現它的UITableView類,同時保持符合這一理念。特別是因爲UITableView依次從UIScrollView和UIView繼承。
當你添加一個UITableView到你的一個類中時,它是否有一個UIViewController處理它在後臺行爲的方式?我知道一個UITableViewDelegate負責告訴表有多少行應該有,等等。但是它的內部工作呢?
是的,我意識到這一點。我想我要問的是,誰做幾何計算,確定如何UITableView實際移動?誰負責實際調用委託方法?等等。這個責任是否屬於實際的UITableView類? –
請記住,繪圖是在UIView類中的drawRect方法中完成的,所以它是視圖本身處理它們的繪製方式。因此,所有的佈局代碼都是視圖,控制器告訴它它將要繪製什麼,即數據,以及如何響應用戶操作。 – 8vius
這不違反MVC的原則嗎?例如,不應該讓UIViewController告訴UITable何時調用它的委託UIViewController中的方法? –