2012-09-01 14 views
0

我有自定義單元格(來自故事板)與圖像和UILabel正常高度爲44的單元格。當我點擊自定義單元格時,我展開單元格高度,再次單擊單元格,它摺疊到正常高度。擴展時,我想添加UISegment Control。 在didSelectRowAtIndexPath方法中,我添加了segmentedControl,但是當我每次單擊時都會使分段控件遍佈整個位置。我不知道如何去做這件事。我是否應該使用分段控件製作另一個自定義單元格,並在單元格展開時加載相應的自定義單元格?單擊時如何在UITableView中將UISegmentControl添加到CustomCell中?

回答

0

如果我是你,我會在創建單元格時添加UISegmentControl,或者使用hidden = YES,或者將它放在單元格的邊界外並在單元格上設置clipToBounds = YES。

+0

我想我的問題是當我點擊單元格時,我強制reloadData,所以我可以強制heightForCell以及方向更改發生。但是,這也會強制調用cellForRow,並且每次打到cellForRow時都會再次創建UISegmentControls。 – ironman2012

+0

@ ironman2012你說的話有幾個問題。當單元格被點擊時,您不應該重新加載數據:您將失去滾動位置,並且在視覺上會產生震動。相反,調用reloadRowsAtIndexPaths:withRowAnimation。其次,不要擔心什麼時候創建的;讓UITableView處理這個問題。只要確保你正確使用了reuseIdentifier,並且tableview會在需要時創建事物。 – thejav

+0

@ ironman2012最後,如果您想要一個可展開/可摺疊的UITableView,請使用帶按鈕的視圖作爲節標題,然後點擊該節標題重新加載該節。擴展部分的numberOfRowsInSection = 1,否則爲0.在WWDC視頻中有一些很棒的UITableView技巧。 2011年的高級桌面會議包括這種可擴展/可摺疊技術。這將使你從很多創可貼編碼中解脫出來。 – thejav

0

我認爲你的第二種方法會很好。您必須在某些條件下添加分段控制。

相關問題