Tôi có một yêu cầu điển hình trong đó tôi cần phải giữ nút ở trạng thái được tô sáng sau khi nhấn nó. Tôi cần thực hiện tác vụ chỉ hoạt động khi một nút ở trạng thái được đánh dấu. Thực ra tôi đang thiết lập trạng thái nút để được đánh dấu theo chương trình.Cách đặt trạng thái UIButton được tô sáng sau khi nhấn nó
[sender setHighlighted:YES];
Và một khi nút ở trạng thái được đánh dấu tôi cần phải thực hiện thao tác khác.
- (IBAction)changeState: (UIButton*)sender
{
if (sender.highlighted == YES)
{
[self performSomeAtion:sender];
}
}
Nhưng, kinh dị, bất cứ khi nào tôi nhấn bất kỳ nút nào, điều kiện trên trở nên đúng và hành động được thực hiện liên tục. Có cách nào mà tôi có thể giữ trạng thái của UIButton được tô đậm sau khi nhấn nó không?
EDIT - Thực ra tôi cần thực hiện 3 hành động khác nhau cho 3 trạng thái khác nhau của nút. Tôi đã sử dụng trạng thái được chọn và trạng thái bình thường. Bây giờ, tôi cần sử dụng trạng thái được đánh dấu.
Bạn có thể thiết lập một biến BOOL mà sẽ cập nhật để TRUE một khi hành động đã được thực hiện. –
nhưng tôi cần đặt nút thành trạng thái được đánh dấu và nó phải ở trong trạng thái được tô sáng trừ khi tôi thay đổi lại .. –
Chỉ với ios 7, bạn nên cân nhắc đặt renderMode thành UIImageRenderingModeAlwaysTemplate và sau đó sử dụng màu Tint để biểu diễn các trạng thái khác nhau . xem http://stackoverflow.com/questions/19802982/apply-tintcolor-to-uiimage –