Tôi nghĩ rằng có những giải pháp tốt hơn cho vấn đề này hơn những gì bạn đã đề xuất , nhưng để trả lời câu hỏi của bạn trực tiếp: Một lớp con của UIButton quan sát các sự kiện liên lạc giống như cách mọi người khác quan sát các sự kiện chạm.
// In your UIButton subclass
- (instancetype)initWithFrame:(CGRect)frame {
self = [super buttonWithType:UIButtonTypeCustom];
if (self) {
[self addTarget:self action:@selector(didTouchButton) forControlEvents:UIControlEventTouchUpInside];
}
return self;
}
- (void)didTouchButton {
// do whatever you need to do here
}
Lưu ý quan trọng: bạn không thể sử dụng [UIButton buttonWithType:]
để tạo nút bấm của bạn, bạn phải sử dụng init
hoặc initWithFrame:
. Mặc dù UIButton có bộ khởi tạo thuận tiện, initWithFrame:
vẫn là trình khởi tạo được chỉ định.
Ý của bạn là gì với 'sự kiện nhấp chuột'? – dandan78
http://stackoverflow.com/search?q=%2Bsubclass+%2Buibutton&submit=search – vikingosegundo
@ dandan78 Tôi muốn nút của mình thực hiện một số hành động khi được nhấp. Tôi muốn logic này được chứa bên trong nút của tôi. Để cung cấp chi tiết hơn một chút, tôi đang tạo một ứng dụng trong đó mỗi nút phát một âm thanh - vì vậy tôi muốn mỗi nút của tôi cũng đóng gói một phiên bản của AVAudioPlayer, sẽ phát khi nút được nhấp. –