Как выглядит обработчик завершения в C# при попытке анимации?


Я хочу перевести этот код

[UIView animateWithDuration:0.25
    animations:^{
        self.datePicker.alpha = 0.0f;
    }
    completion:^(BOOL finished){
        self.datePicker.hidden = YES;
    }
];

Для Xamarin iOS:

UIView.Animate (0.25,
    animation: () => {
        this.datePicker.Alpha = 0.0f;
    },
    completion: (finished){
        this.datePicker.Hidden = true;
    }
);

Проблема находится в блоке completion. Как я могу использовать bool finished здесь?

Я получаю

Неожиданный Символ {

2 6

2 ответа:

Это основное лямбда-выражение.

UIView.Animate (0.25,
    animation: () => {
        this.datePicker.Alpha = 0.0f;
    },
    completion: () => {
        this.datePicker.Hidden = true;
    }
);

Или поскольку у вас есть только одно утверждение в вашем теле, вы можете сократить его еще больше до

UIView.Animate (0.25,
    animation: () => this.datePicker.Alpha = 0.0f,
    completion: () => this.datePicker.Hidden = true
);

Используйте UIView.AnimateNotify (), чтобы получить делегат для обработчика завершения, который использует параметр bool.