我有一个用Rubymotion编写的应用程序。我正在为视图的子视图添加标签。当我第一次调用我的方法时,我想从superView中删除任何UILabel,这样我就可以在同一个位置上写新文本。
class CalorieIntakeController < UIViewController
@label = UILabel.new
@label.frame = [[0,270],[self.view.frame.size.width, 50]]
@label.text = "Text goes here"
self.view.addSubview(@label)
end
我试图找出如何使用ruby来查找是否已存在UILabel。
答案 0 :(得分:1)
如果您打算做很多事情,可能需要查看RMQ。代码会简单得多。例如:
view.parent.find(UILabel).attr(text: '') # Sets all UILabels below parent to blank
或者,如果您一直想要删除标签:
view.parent.find(UILabel).remove # Removes all UILabels below parent
如果您真的想知道首先是否存在UILabel
,请使用选择器:
view.parent.find(UILabel).length
如果没有,那么它将变为零,否则你将在父视图中有一个标签计数。
这不是您问题的准确答案,而是完成您要描述的任务的另一种方法。使用样式表,您可以从控制器代码中清除一堆设置内容并将其放入样式中。然后,您可以通过隐藏,显示,插入或删除各种UI元素来执行操作。
答案 1 :(得分:0)
我认为最好清除标签的文字,或者您可以隐藏然后使其可见,而不是添加和删除视图。