细胞不透明Xamarin.Forms iOs

时间:2015-09-01 12:10:43

标签: c# ios xamarin.ios opacity xamarin.forms

我为iOS ListView实现了自定义渲染器(使用iOS ListView的原生实现),现在,我需要为不同的单元格设置不透明度(如下图所示)单元格包含一些控件如:image / textlabel / image enter image description here

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

您不需要自定义渲染器来设置单元格的不透明度。所有要做的就是设置列表的itemTemplate(使用您的视图而不是Grid。所有视图都有Opacity属性):

<ListView ItemsSource={Binding yourList}> 
  <ListView.ItemTemplate>
    <DataTemplate>
      <ViewCell>
        <ViewCell.View>
          <Grid Opacity="0.5">

          </Grid>
        </ViewCell.View>
      </ViewCell>
    </DataTemplate>
  </ListView.ItemTemplate>
</ListView>

即使所有这些事情,如果您仍想使用自定义渲染器,您的costum渲染器将如下:

[assembly: ExportRenderer(typeof(UIViewCell), typeof(UIViewCellRenderer))]
namespace YourProjectNamespace.iOS.Renderers
{
    public class UIViewCellRenderer: ViewCellRenderer
    {
        public override UITableViewCell GetCell(Cell item,UITableViewCell reusable, UITableView tv)
        {
            var cell = base.GetCell(item, reusable, tv);

            cell.BackgroundColor.ColorWithAlpha(0.5F);// set the opacity
            return cell;
        }
    }
}