2014-09-18 19 views
6

Tôi muốn dịch mã nàyTrình xử lý hoàn thành trông như thế nào trong C# khi cố gắng tạo hiệu ứng động?

[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; 
    } 
); 

Vấn đề là trong khối completion. Làm cách nào để sử dụng bool finished tại đây?

tôi nhận được

bất ngờ Symbol {

Trả lời

8

Đó là cơ bản lambda expression.

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

Hoặc kể từ khi bạn chỉ có một tuyên bố trong cơ thể của bạn, bạn có thể cắt nó xuống hơn nữa để

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

Đại biểu 'Monotouch.Foundation.NSAction' không lấy đối số '1' – testing

+0

Xem chỉnh sửa. Tôi không biết tại sao API Xamarin.iOS khác với chữ ký của Cocoa, tôi nghĩ chúng có nghĩa là bản sao chính xác - loại. –

+0

Nếu tôi nhận được quyền này: trong mã 'Mục tiêu C' ban đầu có một bool được đặt thành true nếu nó được hoàn thành. Trong 'Xamarin' tôi không cần một biến như vậy bởi vì nó tự động được gọi? – testing

2

Sử dụng UIView.AnimateNotify() để có được các đại biểu cho xử lý hoàn thành mà sử dụng tham số bool.

Các vấn đề liên quan