我使用TableViewCell创建了一个TableView,并始终具有View开头。我有这个错误:
必须将自动调整遮罩转换为约束以使_setHostsLayoutEngine:是
我正在使用XIB文件来设计我的TableViewCell和TableView。
这是我的TableView:
public partial class FavoriteProjectsView : MvxTableViewController<FavoriteProjectsViewModel>
{
public FavoriteProjectsView() : base("FavoriteProjectsView", null)
{
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
// ios7 layout
if (RespondsToSelector(new Selector("edgesForExtendedLayout")))
{
EdgesForExtendedLayout = UIRectEdge.None;
}
var source = new MvxSimpleTableViewSource(TableView, FavoriteProjectsItem.Key, FavoriteProjectsItem.Key);
TableView.Source = source;
this.CreateBinding(source).To<FavoriteProjectsViewModel>(viewModel => viewModel.Projetos).Apply();
this.CreateBinding(BtnSave).To<FavoriteProjectsViewModel>(viewModel => viewModel.SaveCommand).Apply();
var bounds = UIScreen.MainScreen.Bounds;
var carregamento = new CarregamentoIOS(bounds);
ViewModel.Carregamento = carregamento;
ViewModel.PreenchePagina();
}
}
这是我的TableViewCell:
public partial class FavoriteProjectsItem : MvxTableViewCell
{
public static readonly NSString Key = new NSString("FavoriteProjectsItem");
public static readonly UINib Nib = UINib.FromName("FavoriteProjectsItem", NSBundle.MainBundle);
protected FavoriteProjectsItem(IntPtr handle) : base(handle)
{
this.DelayBind(() =>
{
this.CreateBinding(LblName).To<Project>(project => project.Name).Apply();
this.CreateBinding(SwitchFavorite).To<Project>(project => project.IsFavorite).Apply();
});
}
public static FavoriteProjectsItem Create()
{
return (FavoriteProjectsItem)Nib.Instantiate(null, null)[0];
}
}
答案 0 :(得分:1)
您似乎正在使用MvvmCross或其他一些Mvvm库?
这只是一个猜测,但似乎有些东西,某处设置属性_setHostsLayoutEngine:YES
,但此设置需要自动布局约束,可能已通过对{{ 1}}。
在iOS中布置视图的旧系统是使用名为view.TranslatesAutoresizingMaskIntoConstraints = false
的东西。 AutoResizing
标志可以在代码中设置,也可以在XIB / Storyboard中设置。如果您正在使用AutoResizing
,新的和改进的布局系统使用约束并为XIB / Storyboard提供更大的灵活性(和复杂性),那么任何AutoLayout
标志都应自动转换为可以约束的约束与AutoResizing
系统一起使用。这是默认行为,但可以使用上面提到的调用AutoLayout
禁用。
有关在Xamarin iOS Designer中使用AutoLayout的更多信息,请参阅: https://developer.xamarin.com/guides/ios/user_interface/designer/designer_auto_layout/