我遇到了标签问题。我有几个标签,需要借助标签进行更改。我这样做在我的代码,但它给出了一个例外 -[UIView setText:]: unrecognized selector sent to instance
这是我的代码:带标签的UILabel,无法设置文本
UILabel *label = (UILabel *)[self.view viewWithTag:0];
label.text = @"empty";
赞赏任何帮助,谢谢。
我遇到了标签问题。我有几个标签,需要借助标签进行更改。我这样做在我的代码,但它给出了一个例外 -[UIView setText:]: unrecognized selector sent to instance
这是我的代码:带标签的UILabel,无法设置文本
UILabel *label = (UILabel *)[self.view viewWithTag:0];
label.text = @"empty";
赞赏任何帮助,谢谢。
每个视图的标签默认为0。
标签
,你可以用它来识别你 应用程序的视图对象的整数。
@属性(非原子)NSInteger的标签
讨论
默认值为0 您可以设置这个变量的值并使用该值后,以识别 视图。
您的viewWithTag
将返回您的self.view
。所以你会得到一个UIView
而不是一个UILabel
,你的应用程序将崩溃。见viewWithTag
的定义:
viewWithTag:
返回其标记指定的值相匹配的视图。
- (UIView *)viewWithTag:(NSInteger)tag
参数标签
标记值来搜索。返回值接收方层次结构中的标签属性与标签参数中的值匹配的视图。
讨论
该方法搜索当前视图及其所有子视图 为指定视图。
因此,对于您的解决方案,您需要为每个标签指定唯一的tag
。然后使用viewWithTag:
并给出您指定的标签。
谢谢,所以我可以使用任何标签,但0? – fuskaren
你确实可以0.但是如果你没有指定一个非零的标签,那么每个'UIView'的标签默认为0。你将有很多标签为0的视图。这绝对不是你想要的。当然你可以使用0,但非零标签是无限更好。 – sunkehappy
你没有找回UILabel。尝试将您的标签更改为更高的数字。 0是您的视图中的任何内容的默认标签将首先具有该标签。 – Martin