UIView にテキストを追加したいとしましょう。これを行うには、まずテキストフィールドを表示するボタンをクリックします。このテキストフィールドは画面上で移動可能で、どこにでも配置できます。ユーザーはフィールドにテキストを入力し、保存ボタンをクリックします。テキストフィールドが消え、UILabel が作成され、その場所に入力されたテキストが表示されます。ユーザーが後でそのテキストを編集したい場合は、タッチするだけで、UILabel が削除され、テキストの内容を含むテキスト フィールドが表示されます。ラベルの touch メソッドはまだ実装していません。
そのような獣からどこから始めますか?
UILabel を正しいプロパティとともに配列に保持する TextView を作成しました。それは配列を介して実行され、drawRect はすべてのラベルを想定されている場所に正確にポップアウトします。
メモリをリークしているか、これについて完全に間違っているのではないかと心配しています。私を正しい方向に導くのに役立つチュートリアルや誰かが知っている何かがありますか? TextView は UILabel のサブクラスであるべきですか?
これが私のTextView.hです
@interface TextManager : UIView
- (void) addTextToView : (NSString *) s : (int)rx :(int) ry;
TextView.m
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
self.backgroundColor = [UIColor clearColor];
}
return self;
}
- (void)drawRect:(CGRect)rect
{
NSLog(@"Draw Rect Text Manager");
// Drawing code
Settings *mySettings = [Settings sharedSettings];
if ([[mySettings returnTextArray] count] > 0) {
[self.superview addSubview:[[mySettings returnTextArray] lastObject]];
}
}
- (void) addTextToView : (NSString *) s : (int)rx :(int) ry {
NSLog(@"Add Text to View");
UIColor *tempColor = [UIColor blueColor];
CGRect tempRect = CGRectMake(rx, ry, 100, 100);
UILabel *thisLabel = [[UILabel alloc] initWithFrame:tempRect];
thisLabel.text = s;
thisLabel.font = [UIFont fontWithName:@"Helvetica" size:16];
thisLabel.textColor = tempColor;
thisLabel.backgroundColor = [UIColor clearColor];
thisLabel.transform = CGAffineTransformMakeRotation (0);
thisLabel.userInteractionEnabled = NO;
thisLabel.tag = 1;
[textArray addObject:thisLabel];
[self setNeedsDisplay];
}