如何在xamarin.forms iOS中为输入单元设置背景色和文本色?

时间:2019-12-22 18:22:16

标签: xamarin xamarin.forms xamarin.ios custom-renderer

我是Xamarin表格的新手。似乎没有属性可以在“表”视图中设置EntryCell的背景颜色或文本颜色。当iOS的主题处于darkMode时,是否可以自定义该方法?

DarkMode将文本颜色更改为白色,与背景颜色相同。所以文字现在不可见

1 个答案:

答案 0 :(得分:1)

要为background color中的 EntryCell 设置text colorxamarin.forms iOS,可以使用自定义渲染器:

[assembly: ExportRenderer(typeof(MyEntryCell), typeof(myEntryCelliOSCellRenderer))]
namespace App99.iOS
{
    public class myEntryCelliOSCellRenderer : EntryCellRenderer
    {

        public override UITableViewCell GetCell(Cell item, UITableViewCell reusableCell, UITableView tv)
        {
            var nativeCell = (EntryCell)item;

            var cell = base.GetCell(nativeCell, reusableCell, tv);

            ((UITextField)cell.Subviews[0].Subviews[0]).TextColor = UIColor.Orange;
            ((UITextField)cell.Subviews[0].Subviews[0]).BackgroundColor = UIColor.Green;
            return cell;
        }
    }
}

并在Xamarin.forms项目中使用它:

public partial class Page1 : ContentPage
{
    public Page1()
    {
        InitializeComponent();

        TableView tableView = new TableView
        {
            Intent = TableIntent.Form,
            Root = new TableRoot
            {
                new TableSection
                {
                    new MyEntryCell
                    {
                        Label = "EntryCell:",
                        Placeholder = "Type Text Here",                           
                    }
                }
            }
        };

        this.Content = new StackLayout
        {
            Children =
            {
                tableView
            }
        };
    }
}

public class MyEntryCell : EntryCell { 

}