簡體   English   中英

點擊單元格顯示下面的視圖

[英]Tapping cell shows the view that is below

我正在創建帶有自定義單元格的表格視圖。

每個單元上都有三個按鈕。 我添加了一個視圖,該視圖應占據單元格的寬度和高度,並與三個按鈕重疊。 我用它來創建可滑動的單元格。

用作疊加層的視圖具有白色背景和不透明的,但是在模擬器上測試該應用程序時,我檢測到在輕觸單元格時會輕輕顯示按鈕,請看一下圖片。

在此處輸入圖片說明

我應該怎么做才能避免看到按鈕。 如果將疊加視圖設置為不透明,為什么現在會發生這種情況。 第二個問題是,在單元格上點擊時,左側的紅色橫條以及一個視圖消失了……

謝謝。

我相信這是UITableViewCell的默認選擇樣式的結果。 讓我們嘗試刪除默認樣式並對其進行自定義。

嘗試設置(取決於您的實現):

  1. cell.selectionStyle = UITableViewCellSelectionStyleNone; cellForRowAtIndexPath內部或
  2. self.selectionStyle = UITableViewCellSelectionStyleNone; 在單元格的自定義子類中或
  3. 如果使用的是IB,則在Interface Builder中“選擇”下的“無”。

然后,您可以在UITableViewCell的自定義類中實現自定義選擇樣式。 在初始化方法中,添加類似以下內容的內容:

self.selectedBackgroundView = [[UIView分配] initWithFrame:self.bounds]; self.selectedBackgroundView.backgroundColor = [UIColor lightGrayColor];

上面的答案將完全關閉突出顯示單元格的選擇,而這可能不是您想要的。

經過幾次測試后,似乎發生了什么事:選擇一個單元格后,iOS會將該單元格上所有視圖的背景色轉換為clearColor。

因此,解決方法是僅在選擇時將單元格視圖的顏色設置回正常:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    let cell = tableView.cellForRowAtIndexPath(tableView.indexPathForSelectedRow()!) as! MyCell
    cell.MyViewOnMyCell.backgroundColor = UIColor.redColor()
}

有關其他答案,請參見此問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM