End*_*050 5 c# xamarin.ios ios xamarin
我正在尝试理解在Monotouch中使用ResponsdsToSelector的模式.例如,以下翻译不起作用.(LayoutMargins用于在iOS 8中设置单元格缩进)
目标C:
if ([tableView respondsToSelector:@selector(setLayoutMargins:)]) {
[tableView setLayoutMargins:UIEdgeInsetsZero];
}
Run Code Online (Sandbox Code Playgroud)
到Monotouch
if (this.TableView.RespondsToSelector(new Selector("setLayoutMargins")))
this.TableView.LayoutMargins = UIEdgeInsets.Zero;
Run Code Online (Sandbox Code Playgroud)
我很确定我的命名是"setLayoutMargins".我也试过"LayoutMargins".任何人都可以帮助1)修复此声明和2)帮助我理解命名约定/模式?
谢谢!
pou*_*pou 14
我很确定我的命名"setLayoutMargins"有问题
选择器:
以ObjC 结尾,并且还需要在C#中输入,即:
if (this.TableView.RespondsToSelector(new Selector("setLayoutMargins:")))
Run Code Online (Sandbox Code Playgroud)
注意:额外:
意味着调用选择器时需要一个参数.这就是为什么set*
有吸气剂的原因.
检查选择器的替代方法是使用版本检查.