Ios 目标C:修改名称包含字符串的标签
我想修改目标C中的标签,如下所示: 当按下一个名为“Car”的按钮时,我想把标签“pushedCar”解开。 现在看起来像这样,但它是静态的Ios 目标C:修改名称包含字符串的标签,ios,iphone,string,label,Ios,Iphone,String,Label,我想修改目标C中的标签,如下所示: 当按下一个名为“Car”的按钮时,我想把标签“pushedCar”解开。 现在看起来像这样,但它是静态的 if ([buttonName isEqualToString:@"Car"]) { self.pushedCar.hidden = NO;} 我怎样才能写出这样的东西: if ([buttonName isEqualToString:@"Car"]) { self.pushed%@.hidden , buttonName
if ([buttonName isEqualToString:@"Car"]) {
self.pushedCar.hidden = NO;}
我怎样才能写出这样的东西:
if ([buttonName isEqualToString:@"Car"]) {
self.pushed%@.hidden , buttonName = false;}
UILabel *label = [myDictionary objectForKey:buttonName];
label.hidden = NO; // or label.hidden = !label.hidden;
这是一个愚蠢的例子,但我需要它来写一些太复杂的东西
提前谢谢
迈克尔是这样的吗
if ([ButtonName isEqualToString:@"Car"]) {
self.pushedCar.hidden = !self.pushedCar.hidden;
}
使用KVC
id name = nil
if(myButtonCurrentTitle isEqualTo:@"Car"]) name = @"Car";
assert(name);
UILabel *label = [self valueForKey:[NSString stringWithFormat:@"pushed%@", name]];
assert([label isKindOfClass:[UILabel class]]);
如果你的意思是“我怎样才能得到一个与字符串相关的对象”,那么将按钮放入NSDictionary可能是最简单的方法,这样你就可以像
MyButton *button = [buttonDict objectForKey:@"Car"];
但老实说,您的示例代码没有多大意义,因此我发现很难知道如何为您编写一个像样的示例如果我理解正确,您需要不同的按钮和标签(例如汽车、马、猫) 在这种情况下,制作一个NSDictionary,其中键为buttonName(@“Car”),对象为标签 你可以这样写:
if ([buttonName isEqualToString:@"Car"]) {
self.pushed%@.hidden , buttonName = false;}
UILabel *label = [myDictionary objectForKey:buttonName];
label.hidden = NO; // or label.hidden = !label.hidden;
希望这有帮助 我认为您正在尝试使用基于任意字符串的方法获取按钮实例 首先需要使用属性公开按钮实例:
@interface MyClass : UIView
{
// These are connected using Interface Builder
IBOutlet UIButton *carButton;
IBOutlet UIButton *busButton;
IBOutlet UIButton *bikeButton;
}
@property (string, nonatomic, readonly) UIButton *carButton;
@property (string, nonatomic, readonly) UIButton *busButton;
@property (string, nonatomic, readonly) UIButton *bikeButton;
@end
您可以使用以下方法获取按钮的实例:
NSString *thing = "@car";
UIButton *button = [self valueForKey:[NSString stringWithFormat:@"%@Button", thing]];
[button setHidden:YES];
更改所有按钮标题,如汽车、面包车、公共汽车等。 然后把这作为他们所有人的内部修补方法
-(IBAction) buttonPressed:(UIButton *) pressedButton{
NSString *buttonName = pressedButton.titleLabel.text;
UILabel *label = [self valueForKey:[NSString stringWithFormat:@"pushed%@", buttonName]];
label.hidden = NO;
}
不清楚你想要什么。你能改进你的例子吗?或者描述您的示例应该做什么。是否要更改按钮名称?编辑为小写buttonName。不要在属性/IVAR中使用大写字母,这会让人困惑。好的,我会尽量让它更清楚。我有一个看起来像房子的按钮和一个看起来像汽车的按钮。我希望用户单击其中一个按钮。如果他推房子,我希望出现一个名为“推房子”的标签。如果他推车,我希望“推车”出现。现在我想让标签显示为“pushedbuttonname”。我如何输入我按下的按钮的名称,并使属于它的标签出现?我试试Thilina Hewagama AnswerWORKS!非常感谢你