iphone - 创建 uibutton 子类

标签 iphone objective-c

我试图子类化 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/

相关文章:

iPhone:通过从顶部向下拉图像来滑入和滑出 View

iphone - UINavigationController 强制旋转

iphone - 通过 IP 地址获取主机名

ios - 在 Objective-C 中将两个 uint8_t 转换/组合为 int16_t

iphone - 授予日历隐私访问问题

iphone - 创建 ios 应用程序演示视频

iphone:gameKit 无法连接到非 Apple 设备?

c++ - 轴的欧拉序列是否干扰四元数结果

iphone - iOS 中基于 URL 的导航,例如 three20 的 TTNavigator

ios - 使用谓词 iOS SDK 从字典数组中过滤数据