【问题标题】:UILabel with tag, can't set text带有标签的UILabel,无法设置文本
【发布时间】:2012-12-03 11:12:04
【问题描述】:

标签有问题。我有几个标签需要在标签的帮助下进行更改。我在我的代码中这样做,但它给出了一个例外 -[UIView setText:]: unrecognized selector sent to instance 这是我的代码:

UILabel *label = (UILabel *)[self.view viewWithTag:0];

label.text = @"empty";

任何帮助表示赞赏,谢谢。

【问题讨论】:

  • 你没有取回 UILabel。尝试将您的标签更改为更高的数字。 0 是默认标记,您的视图将首先具有该标记。

标签: objective-c uiview uilabel


【解决方案1】:

每个视图的标签默认为 0。

标签

一个整数,你可以用它来识别你的视图对象 应用。

@property(nonatomic) NSInteger 标签

讨论

默认值为 0。 您可以设置此标记的值并使用该值来识别 稍后查看。

您的viewWithTag 将返回您的self.view。所以你会得到一个UIView 而不是UILabel 并且你的应用程序会崩溃。见viewWithTag的定义:

viewWithTag:

返回标签与指定值匹配的视图。

- (UIView *)viewWithTag:(NSInteger)tag 参数

标签

要搜索的标签值。返回值接收者层次结构中的视图,其 tag 属性与 tag 参数中的值匹配。

讨论

此方法搜索当前视图及其所有 指定视图的子视图。

因此,您的解决方案是您需要为每个标签指定唯一的tag。然后使用viewWithTag: 并给出你指定的标签。

【讨论】:

  • 谢谢,所以我可以使用除 0 以外的任何标签?
  • 你确实可以为0。但是如果你不指定非零标签,每个UIView的标签默认为0。您将有很多标签为 0 的视图。这绝对不是您想要的。当然可以使用 0,但非零标签会更好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 2014-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多