Я хотел бы создать простую анимацию, когда представление отображается в ячейке. Когда это представление используется, я хотел бы изменить его цвет на синий и слайд это справа от экрана.Xamarin iOS - проблема, связанная с UIView из пользовательского класса UITableViewCell
У меня есть две проблемы:
- Как ссылающихся точное представление, которое было повернутым?
В настоящее время более одного вида заменено на синий, даже на тот, который был использован, когда я ожидаю, что измененный вид изменится.
- Вид не помещается/скрывается. Это информационный оверлей. Я хотел бы спрятать его, сдвинув его вправо, если он вытянут (чтобы скрыть информацию), а затем сдвиньте его влево, чтобы отобразить информацию, когда пользователь снова на нее нажмет. В основном, открытая/закрытая анимация.
Любая помощь была бы принята с благодарностью.
public override UITableViewCell GetCell (UITableView tableView, NSIndexPath indexPath)
{
cell = tableView.DequeueReusableCell (CustomCell.Key) as CustomCell;
if (cell == null) {
cell = new CustomCell();
}
try
{
cell.cellImageView.Image = TableItems[indexPath.Row];
tapOnOverlay = new UITapGestureRecognizer(HideTheOverlay);
cell.overlay.UserInteractionEnabled = true;
cell.overlay.AddGestureRecognizer(tapOnOverlay);
}
catch (Exception imageException)
{
Console.Write(imageException.Message);
}
return cell;
}
public void HideTheOverlay()
{
try{
UIView.Animate(2.0,()=> {
// How do I get a reference to the exact view that was tapped on here??
cell.overlay.Layer.BackgroundColor = UIColor.Blue.CGColor;
// This does not move the view. Nothing happens here
cell.overlay.Layer.Frame = new RectangleF(
new PointF((float)cell.overlay.Layer.Frame.Location.X + 200,
(float)cell.overlay.Layer.Frame.Location.Y),
(SizeF)cell.overlay.Frame.Size);
});
}catch(Exception ex)
{
Console.Write(ex.Message + ex.StackTrace);
}
Не уверен, если это корень вашей проблемы, но вы понимаете, если ячейка Повторное использование закончится более чем одним повторителем жестов? – Gusman
Это правда. Я этого не осознавал. Все, что я пытаюсь сделать, - это оживить представление, которое существует внутри пользовательской ячейки. Как мне это сделать, используя лучшие практики? – naffie