使用标签作为按钮我遇到了一些挑战。我有一个标签定义为UILabel,并在我的.h文件中声明了字符串变量:
IBOutlet UILabel *l1;
@property(strong)NSString *myvariable;
在xib中,选中标签后,在Identity Inspector视图的Document下,设置带有所需标签名称的Label字段 - 例如:l1。我的标签中也有一些静态文本。
在文件所有者连接检查器中,我将l1插座连接到l1标签。
我的目标:当触摸标签时,我想简单地为字符串变量分配一个文本值,例如可能在.m文件中执行的操作:
self.myvariable = l1.text;
我尝试过的失败的事情: - 在我的.h中设置UIButton, - 尝试在.m中设置UIButton - 在XIB Identity Inspector视图的“辅助功能”下,尝试选中“Traits”复选框以将标签设置为按钮
我还没弄明白。这可能是一个简单的标签问题,我对标签的大多数经验都包括静态文本显示,或使用纪元时间显示基于当前日期的倒计时。任何指导将不胜感激!
提前致谢! 罗布
答案 0 :(得分:6)
环顾四周,大多数人建议使用实际按钮并将背景设置为透明或背景颜色。
那就是说,你可以这样做:
在viewWillLoad中:
UILabel * label = [[UILabel alloc] init]; // change/delete to use your obj
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(pushAction)];
[label addGestureRecognizer:tap];
label.userInteractionEnabled = YES;
然后设置选择器:
- (void) pushAction
{
self.myvariable = l1.text;
}
答案 1 :(得分:0)
您可以创建一个扩展UILabel
的自定义类,该类会覆盖
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
您可以在xib的身份检查器中分配新的自定义UILabel。
答案 2 :(得分:0)
UILabel *lblname = [[ UILabel alloc]initWithFrame: CGRectMake(10, 120, 200, 35)];
lblname.text = @"sunil";
lblname.textColor = [UIColor blueColor];
lblname.textColor = [UIColor blueColor];
lblname.backgroundColor = [UIColor orangeColor];
[self.view addSubview:lblname];
UIButton *btnpress = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btnpress.frame = CGRectMake(10, 180, 300, 20);
[btnpress setTitle:@"click" forState:UIControlStateNormal];
[btnpress addTarget:self action:@selector(btnpress1) forControlEvents:UIControlEventTouchUpInside];
btnpress.backgroundColor = [UIColor redColor];
[self.view addSubview:btnpress];
答案 3 :(得分:0)
我希望将整个屏幕作为一个按钮,按下该按钮会更改按钮上显示的标签上的文字。这就是我在xcode上的表现:
在故事板中,我将一个按钮拖到界面上。在您编辑按钮的右上角,我将按钮内容设置为" group"而不是文字。不要在按钮上将alpha设置为0。然后我在按钮/组的顶部拖了一个标签。当ctrl-拖动必要的操作和出口时,请务必通过暴露故事板的左侧面板来完成。更改按钮内容类型后,您可能只能通过鼠标访问该组。