2016-01-12 25 views
5

Tôi đang tạo chế độ xem giống như piano với UIButton làm phím đàn piano. UIControlEvents Tôi nên nghe để nhận lại cuộc gọi khi nút bị mất và đánh dấu trạng thái được đánh dấu?Trạng thái điều khiển nào bắt đầu và kết thúc trạng thái đánh dấu của UIButton

Tôi đã cố gắng tạo lớp con là UIButton và thêm người quan sát thuộc tính cho highlighted và nó hoạt động tốt. Tuy nhiên, đôi khi tôi cần phải đặt trạng thái được đánh dấu theo cách thủ công từ mã và điều đó thực sự làm rối loạn nó vì không có cách nào để cho biết sự kiện là người dùng hay ứng dụng được khởi tạo.

+0

Bạn có nghĩ rằng bạn sẽ nhận được bất kỳ cuộc gọi lại để thậm chí nghe cho 'AllEvents' khi trạng thái được đánh dấu sửa đổi từ mã? – zcui93

+0

Nếu tôi hiểu vấn đề của bạn đúng, tôi nghĩ bạn nên sử dụng sự kiện UIControlEventTouchUpInside và UIControlEventTouchUpOutside –

+0

Có thể sử dụng một boolean' như một nút bật/tắt để theo dõi trạng thái ... –

Trả lời

3

Để bắt chước hành vi của chính đàn piano tôi đã sử dụng sau UIControlEvents:

self.addTarget(self, action: "pressed", forControlEvents: [.touchDown]) 
self.addTarget(self, action: "released", forControlEvents: [.touchDragExit, .touchUpInside, .touchUpOutside, .touchCancel]) 
0

được nhà nước nhấn mạnh: UIControlEventTouchDown

mất nhà nước nhấn mạnh: UIControlEventTouchDragOutside

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