2010-07-19 52 views
-1

我有一种愚蠢的问题。iPhone问题制作UILabel

我正在使用下面的代码通过代码创建/修改UILabel。我通过代码创建它的原因是因为我需要将它旋转90度,并且我没有意识到在IB中这样做的方法。

发生了什么 - 用户点击一个按钮,使他们选择的文本出现在UILabel中。然后,当他们再次选择按钮时,使用不同的文本,新文本将出现在旧文本的位置。

第一次按下按钮时,它完美地工作,但第二次按下按钮时,新标签出现在旧标签上,旧标签从不消失。我尝试删除第一个标签,使其为零,只删除文本,但一旦创建标签,就无法访​​问标签的任何部分。

ViewController.h 

... UIView * viewForLabels; UILabel * tab1Label; } @property(nonatomic,retain)IBOutlet UIView * viewForLabels; @属性(非原子,保留)IBOutlet中的UILabel * tab1Label ...

@end 

ViewController.m 

...

@synthesize tab1Label; 

...

UILabel *tab1Label = [[UILabel alloc]init]; 

tab1Label.text = [theText]; 
tab1Label.backgroundColor = [UIColor clearColor]; 
tab1Label.textColor = [UIColor blackColor]; 
tab1Label.opaque = NO; 
tab1Label.font = [UIFont systemFontOfSize:14]; 
tab1Label.numberOfLines = 2; 
tab1Label.adjustsFontSizeToFitWidth=YES; 
tab1Label.transform = CGAffineTransformMakeRotation (90*3.1459565)/180); 
tab1Label.frame = CGRectMake(2,87,45,119); 
[viewForLabels: addSubview: tab1Label]; 

...

回答

1

首先在你的代码示例中,分配tabLabel1,然后针对广告运行一堆属性更新ifferent命名对象tab1Label。

对不起,如果我误解了这个问题,但为什么你要创建第二个标签?根据您的描述,这部分:

发生了什么事 - 用户点击一个按钮 使他们 选择出现在的UILabel的文本。 然后,当他们再次选择按钮 时,使用不同的文本,新的 文本将代替旧文本。

只需更新.text属性和任何大小需要为什么使用一个单独的对象?

+0

对不起,第一件事是我的一个错字。 如果我没有alloc/init行,标签就不会出现。 – Brodie 2010-07-19 15:52:06

+0

好吧,我想出了你的意见。我曾经在某处读过,如果你要旋转一个标签,在添加视图之前这样做,所以我试图在代码中完全构建标签。我刚刚删除了init/alloc行,并向连接到tab1Label的IB添加了一个标签,并且所有工作都正常。感谢您指点我正确的方向。 – Brodie 2010-07-19 15:56:31

+0

快乐它帮助。 即使在添加到视图后,您也可以操作子视图。只要坚持你的对象或稍后抓一个指向它的指针并根据需要更新你的属性。将视图添加为子视图只是将其放置在视图层次结构中 - 当您这样做时,不会失去操纵它的能力。 – Nick 2010-07-19 16:20:29