0
我想創建一個複選框按鈕,這個按鈕在很多地方都會在我的應用程序中使用。我想要這個按鈕的一個基本行爲是當按鈕被點擊時改變其狀態。所以我將這個按鈕分類並寫下了下面的類。基本上它只是增加一個額外的目標方法,在 - awakeFromNib
函數按鈕。通過繼承來改變UIButton的行爲
//
// CheckBoxButton.h
// CheckBoxButton
//
// Created by Ankit Srivastava on 11/07/13.
// Copyright (c) 2013. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface CheckBoxButton : UIButton
@end
這裏是.M
/
// CheckBoxButton.m
// CheckBoxButton
//
// Created by Ankit Srivastava on 11/07/13.
// Copyright (c) 2013. All rights reserved.
//
#import "CheckBoxButton.h"
@implementation CheckBoxButton
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
-(void)awakeFromNib{
[self addTarget:self action:@selector(alterState:) forControlEvents:UIControlEventTouchUpInside];
}
-(void) alterState:(UIButton*)sender {
[self setSelected:!self.isSelected];
}
@end
現在,我通過廈門國際銀行將按鈕添加,只是改變其基類CheckBoxButton
。 每一件事情都可以正常工作,但我聽說UIButton
不應該被分類,但我找不到任何文檔證明,並且我只是添加一個方法來改變它的狀態。所以我的問題是這種方法是否可以..?
感謝您的輸入。
你最好是對UIControl進行子類化,如果你在'NIB'文件中使用它們,'initWithCoder:(NSCoder *)aDecoder'被調用,你可以在這裏添加目標。 – rckoenes