我需要对所选项目进行特殊选择 我希望它看起来像:
如何让Uitableview所选项目看起来完全像这样?
答案 0 :(得分:0)
如果要在所选单元格中显示内置附件,则应在 RowSelected()方法覆盖中添加类似以下代码的内容em> UITableViewSource 类:
public override void RowSelected (UITableView tableView, NSIndexPath indexPath)
{
// do something with your data...
// data is a model object that contain a public bool Selected {get; set;} property
// myDataCollection is a collection of model objects
var data = myDataCollection [indexPath.Row];
var cell = tableView.CellAt(indexPath);
if (data.Selected)
{
data.Selected = false;
cell.Accessory = UITableViewCellAccessory.None;
}
else
{
data.Selected = true;
cell.Accessory = UITableViewCellAccessory.Checkmark;
}
tableView.DeselectRow (indexPath, true);
}
}
UITableViewCellAccessory 枚举的可用成员包括: Checkmark , DetailButton , DetailDisclosureButton , DisclosureIndicator < / em>和无。
请注意,您应该跟踪模型类中已选择的单元格,并在 GetCell()方法中设置附件,以防止附件显示在已回收的单元格上当它们在屏幕外滚动时,通过 DequeueReusableCell()方法。
如果要显示您选择的任意UIImage,您需要将上面的代码替换为:
cell.AccessoryView = myImageView;
其中 myImageView 是 UIImageView ,其中的图片是从包中加载的。
答案 1 :(得分:0)
您可以设置SelectedBackgroundView属性
cell.SelectedBackgroundView = new MyView()
答案 2 :(得分:0)
这是我的解决方案
int index = Array.IndexOf(itemlst,curValue);
NSIndexPath path = NSIndexPath.FromRowSection(index, 0);
var cell = LanguageList.CellAt(path); // language list it`s UiTableView
var selectedItemView = new UIView ();
var image = new UIImageView (UIImage.FromFile ("active.png"));
image.Frame = new RectangleF (300, 17, 10, 10);
selectedItemView.AddSubview (image);
selectedItemView.Layer.BorderWidth = 1;
selectedItemView.Layer.BorderColor = UIColor.FromRGB (50,50, 50).CGColor;
cell.SelectedBackgroundView = selectedItemView;