Objective c 另一个自定义UIView子类
我想通过对Objective c 另一个自定义UIView子类,objective-c,ios,uiview,uiimageview,custom-view,Objective C,Ios,Uiview,Uiimageview,Custom View,我想通过对UIView进行子类化来创建一个自定义类,该类看起来如下: 哦,文字上说身体视图应该是80像素高,50像素高。 但我似乎做不好。我已经准备好了类标题,如下所示: #import <UIKit/UIKit.h> @interface MessageView : UIView @property (strong, nonatomic)UIImage *backgroundImage; @property (strong, nonatomic)UITextView *mes
UIView
进行子类化来创建一个自定义类,该类看起来如下:哦,文字上说身体视图应该是80像素高,50像素高。
但我似乎做不好。我已经准备好了类标题,如下所示:
#import <UIKit/UIKit.h>
@interface MessageView : UIView
@property (strong, nonatomic)UIImage *backgroundImage;
@property (strong, nonatomic)UITextView *messageView;
@property (strong, nonatomic)UILabel *titleLabel;
- (id)initWithBackgroundImage:(NSString*)background;
- (void)setTitle:(NSString*)titleMessage;
- (void)setBody:(NSString*)bodyMessage;
@end
但什么也没发生。完成后,我将通过setter方法设置文本。我想通过setCenter(x,y)
设置最终视图上的位置。我希望这个班有固定的宽度和高度
谢谢 编辑:
- (id)initWithBackgroundImage:(NSString*)background
{
self = [super init];//[super initWithFrame:CGRectMake(0, 0, 270, 100)];
if (self)
{
UIImageView *bg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:background]];
messageView = [[UITextView alloc] initWithFrame:CGRectMake(10, 40, 250, 50)];
titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 250, 20)];
[self addSubview:bg];
[bg release];
[self addSubview:messageView];
[messageView release];
[self addSubview:titleLabel];
[titleLabel release];
}
return self;
}
使用
[[MessageView alloc]initWithBackgroundImage:@“message_red”]代码>它与日志一起崩溃:***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[UIImage superview]:未识别的选择器已发送到实例0x1dda7420'
Sweet,它现在正在工作。我只是忘记了“添加子视图”。我可以问一下我为什么要释放我的财产吗?如何编辑它们?@property(retain,非原子)UILabel*titleLabel;-在这里您添加1个指向属性的链接;titleLabel=[[UILabel alloc]initWithFrame:CGRectMake(10,10250,20)];-在这里您添加第二个链接。[标题标签释放];-现在你有了1个链接。不是吗?:)
- (id)initWithBackgroundImage:(NSString*)background
{
self = [super init];//[super initWithFrame:CGRectMake(0, 0, 270, 100)];
if (self)
{
UIImageView *bg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:background]];
messageView = [[UITextView alloc] initWithFrame:CGRectMake(10, 40, 250, 50)];
titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 250, 20)];
[self addSubview:bg];
[bg release];
[self addSubview:messageView];
[messageView release];
[self addSubview:titleLabel];
[titleLabel release];
}
return self;
}