1

私の .h ファイル

#import <UIKit/UIKit.h>

@interface NavigationBarButton : UIButton

@property(nonatomic, retain) UIImageView *barButtonImage;

@property(nonatomic, retain) UILabel *barButtonLabel;

- (id)initWithFrame:(CGRect)frame withImage:(UIImage *) image withTitle:(NSString *) title;

私の .m ファイル

- (id)initWithFrame:(CGRect)frame withImage:(UIImage *) image withTitle:(NSString *) title


{

self = [super initWithFrame:frame];

if (self) 

{  
        self = [UIButton buttonWithType:UIButtonTypeCustom];

        self.frame = frame;
        self.backgroundColor = [UIColor clearColor];

        barButtonImage = [[[UIImageView alloc] initWithFrame:CGRectMake(16, 1, 18, 23)]autorelease];
        [barButtonImage setImage:image];

        barButtonLabel = [[[UILabel alloc] initWithFrame:CGRectMake(0, 26, 50, 10)]autorelease];
        barButtonLabel.backgroundColor = [UIColor clearColor];
        barButtonLabel.text = title;
        barButtonLabel.font = [UIFont systemFontOfSize:11];
        barButtonLabel.textAlignment = NSTextAlignmentCenter;

        [self addSubview:barButtonLabel];
        [self addSubview:barButtonImage];

        //[barButtonImage release];
        //[barButtonLabel release];
    }
    return self;
}

しかし、[self addSubview:barButtonLabel] でアプリがクラッシュします。コードは iPad 6.0 シミュレーターでは正常に動作しますが、iPad 5.0 または iPad 5.1 シミュレーターでは動作しないため、奇妙です。

4

1 に答える 1

0

一度これで確認してください

これを.mファイルに追加します

@synthesize barButtonImage, barButtonLabel;
于 2013-04-02T13:36:39.647 に答える