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
initWithBackgroundImage
ここで、背景画像ファイル名を渡す場所を呼び出して、これらのビューを作成します。この例は、これらのイメージの 1 つを示しています。テキストが空になることを除いて、initが例のようにボディを作成するように、initメソッドを実装するにはどうすればよいですか?
init メソッドの私の無駄な試みはこれでした:
- (id)initWithBackgroundImage:(NSString*)background
{
self = [super init];//[super initWithFrame:CGRectMake(0, 0, 270, 100)];
if (self)
{
backgroundImage = [[UIImage imageNamed:background] retain];
messageView = [[UITextView alloc] initWithFrame:CGRectMake(10, 40, 250, 50)];
titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 250, 20)];
}
return self;
}
しかし、何も起こりませんでした。完了したら、setter メソッドを使用してテキストを設定します。を介して最終ビューの位置を設定したいと思いsetCenter(x, y)
ます。クラスの幅と高さを「固定」したい。
ありがとう!