2016-12-29 36 views
0

我正嘗試在我的應用程序的滑出菜單上爲ListView自定義選定的背景顏色。所以我有這個習俗ViewCellRenderer,但是我還是對所選項目的標準灰色背景:在Xamarin Forms中設置ViewCellRenderer上的自定義SelectedBackgroundView沒有效果

public class MenuViewCellRenderer : ViewCellRenderer 
{ 
    UIView background; 

    public override UITableViewCell GetCell(Cell item, UITableViewCell reusableCell, UITableView tv) 
    { 
     var cell = base.GetCell(item, reusableCell, tv); 

     if (background == null) 
     { 
      background = new UIView 
      { 
       BackgroundColor = UIColor.Brown 
      }; 
     } 

     cell.SelectedBackgroundView = background; 

     /* 
     SANITY CHECKS: 

     cell.BackgroundView = background; // this works, proving that I can override SOMETHING with my renderer 

     cell.MultipleSelectionBackgroundView = background; // tried this for just in case 

     cell.SelectionStyle = UITableViewCellSelectionStyle.None; // has no effect 

     Debug.WriteLine("I can read this in the console"); // yip 
     */ 

     return cell; 
    } 

} 

誰能想到這是爲什麼不工作的原因? 任何建議的替代品?

+0

您的代碼適用於我,但SelectedBackgroundView只能在短時間內處於活動狀態,因此我看到棕色背景,但它很快會淡出回到非隔離背景視圖。這是iOS的默認行爲。你是否在尋找細胞來保持選定的背景顏色,直到選中另一個細胞?這可能會更復雜一點。 – jgoldberger

+0

感謝您提供的非常有用的反饋@jgoldberger我不夠快速地看到棕色背景。你的回答對我來說就是這個問題,所以你可以請你重新發佈一個答案,這樣我就可以把它作爲解決這個謎團的決定。 –

+0

會做,謝謝 – jgoldberger

回答

1

您的代碼適用於我,但SelectedBackgroundView只能在短時間內處於活動狀態,因此我看到棕色背景,但它很快會淡出回到非隔離背景視圖。這是iOS的默認行爲。你是否在尋找細胞來保持選定的背景顏色,直到選中另一個細胞?這可能會更復雜一點。

相關問題