我试图子类化 UIButton 以包含一个事件指示器,但是当我使用 initWithFrame:(因为我是 uibutton 的子类,所以我没有使用 buttonWithType:) 按钮不显示。另外,在这种情况下我将如何设置按钮类型?:
我的 View Controller :
ActivityIndicatorButton *button = [[ActivityIndicatorButton alloc] initWithFrame:CGRectMake(10, 10, 300, 44)];
[button addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"Older Posts..." forState: UIControlStateNormal];
[cell addSubview:button];
[button release];
我的事件指示器按钮类:
#import <Foundation/Foundation.h>
@interface ActivityIndicatorButton : UIButton {
UIActivityIndicatorView *_activityView;
}
-(void)startAnimating;
-(void)stopAnimating;
@end
@implementation ActivityIndicatorButton
- (id)initWithFrame:(CGRect)frame {
if (self=[super initWithFrame:frame]) {
_activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
_activityView.frame = CGRectOffset(_activityView.frame, 60.0f, 10.0f);
[self addSubview: _activityView];
}
return self;
}
-(void) dealloc{
[super dealloc];
[_activityView release];
_activityView = nil;
}
-(void)startAnimating {
[_activityView startAnimating];
}
-(void)stopAnimating {
[_activityView stopAnimating];
}
@end
最佳答案
支持组合而不是继承。
创建一个包含您需要的组件的 UIView,并将它们添加到您的 View 中。
关于iphone - 创建 uibutton 子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5045672/