假設你想添加一些文本到UIView。要做到這一點,你首先點擊一個可以調出文本框的按鈕。此文本框可在屏幕上移動,並可放置在任何地方。用戶將輸入文本到字段中並單擊保存按鈕。文本字段消失並創建一個UILabel,並在輸入文本的位置。如果用戶希望稍後編輯該文本,則只需觸摸該文本即可,UILabel將被刪除並且文本字段將與文本內容一起顯示。我還沒有實現標籤的觸摸方法。動態添加UILabel到UIView然後編輯
我從哪裏開始這樣一個野獸?
我已經創建了一個TextView,它保存了一個Array中的UILabel及其正確的屬性。它會運行,儘管數組和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];
}
檢查使用儀器泄漏 – Jeremy 2013-02-16 03:55:25