2013-08-01 59 views
0

如何將單元格的詳細披露從默認位置移動到另一個位置?在objective-c中不經意間。如何將單元格的詳細信息從默認位置移動到另一個位置?

+0

忘不了?我認爲你的意思很明顯......無論哪種方式,在 – Ben

+0

這個問題上沒有必要。我認爲這個問題措辭良好。 – HalR

+0

但是,如果我想通過點擊單元格中的按鈕切換到視圖(在導航控制器中),我怎麼能在prepareForSegue中做到這一點?我可以得到單元格的索引,然後通過單擊該公開來完成此步驟,但是當我單擊位於單元格中心的按鈕時,索引路徑不存在。 – Joker

回答

0

創建通過重寫UITableViewCell的自定義單元格,你有沒有低於實現文件中做到了這一點呢,和郵政的方法。

-(void)layoutSubviews 
{ 
    [super layoutSubviews]; 

    for (UIView *subview in self.subviews) { 

     if ([NSStringFromClass([subview class]) isEqualToString:@"UIButton"]) { 

      //Just an example, change the frame by your wish here. 
      CGRect newFrame = subview.frame; 
      newFrame.origin.y -= 15; 
      subview.frame = newFrame; 
     } 

    } 

} 

這種方法可以用來編輯等時,編輯TableViewCell的任何默認組件,如披露,刪除按鈕,不會惹你把你的細胞內部的意見,因爲你所有的手冊增加的意見真的在contentView財產內。

工程就像一個魅力,但請記住,改變視圖之外無法訪問的子視圖的狀態從來不是一種好的做法(儘管它不會導致您的應用程序被拒絕)。

一個更優雅的解決方案是簡單地用一個UIImageView與您的自定義披露,並把它的細胞內你想要的位置。


編輯:

下面的評論和downvote我想指出的東西是很重要的後:

所有的意見,你把你的細胞內,實際上是UITableViewCell的屬性裏面的「內容查看」。因此,即使你的單元格中有按鈕,它們也不會被列在上面的enumeratino中,因爲它們實際上是contentView的子視圖,所以代碼仍然可以工作。

請,約UITableViewCellContentView一個小小的研究,以獲得更多的細節。

我在這裏的觀點是表明,是的,它可以移動默認披露,如果這就是你正在尋找真正的東西,但我沒有告訴大家,這不是更好的解決方案。

+0

所以如果你在你的'UITableViewCell'的子視圖中提供你自己的'UIButton',你認爲這仍然是一個有效的解決方案?我想不會 – binnyb

+0

你的所有單元格的子視圖是內容查看裏面的UITableViewCell的子視圖真的,也不會在此枚舉上市......請downvoting之前做一下的UITableViewCell和UITableViewCellContentView一個小小的研究。我確實告訴過,這不是更好的解決方案,我的觀點是表明是的,如果有人想要這樣做,這是可能的。 –

0

移動附件視圖沒有清晰且經過批准的方式,其中包含詳細的公開指示器。有一些「黑客」的方式來移動它,我強烈建議不要這樣做。

Here is an answer與一個人的黑客。

+0

但是,如果我想通過單擊單元格中的按鈕切換到視圖(在導航控制器中),我怎麼能在prepareForSegue中做到這一點?我可以得到單元格的索引,然後通過單擊該公開來完成此步驟,但是當我單擊位於單元格中心的按鈕時,索引路徑不存在。 – Joker

相關問題