我想将标签移动到外部显示器上的任何位置。 (例如,displayRunsLabel位于顶部并居中,或者距顶部和右侧约40px)
我的标签显示在屏幕上。我当前正在使用文本对齐方式。
最好的方法是什么?
这是我的外部显示器:
ExternalDisplayScreenshot
以下是代码:
// CUSTOMISE VIEW
secondScreenView.backgroundColor = UIColor.black
displayWicketLabel.textAlignment = NSTextAlignment.left
displayWicketLabel.font = UIFont(name: "Arial-BoldMT", size: 200.0)
displayWicketLabel.textColor = UIColor.white
displayWicketLabel.frame = secondScreenView.bounds
secondScreenView.addSubview(displayWicketLabel)
displayRunsLabel.textAlignment = NSTextAlignment.center
displayRunsLabel.font = UIFont(name: "Arial-BoldMT", size: 200.0)
displayRunsLabel.textColor = UIColor.white
displayRunsLabel.frame = secondScreenView.bounds
secondScreenView.addSubview(displayRunsLabel)
displayOversLabel.textAlignment = NSTextAlignment.right
displayOversLabel.font = UIFont(name: "Arial-BoldMT", size: 200.0)
displayOversLabel.textColor = UIColor.white
displayOversLabel.frame = secondScreenView.bounds
secondScreenView.addSubview(displayOversLabel)
}
答案 0 :(得分:0)
标签或任何其他UIView的位置是其origin
的{{1}}的位置,{CG}代表其左上角。
所以,您目前在说:
frame
嗯,这很愚蠢,因为您给了所有三个标签相同的帧!因此,它们彼此重叠,并且(如您正确地说),您只能通过给它们提供不同的文本对齐方式来阅读它们。
相反,给他们每一个不同的框架-将标签放在您想要的位置。例如:
displayWicketLabel.frame = secondScreenView.bounds
displayRunsLabel.frame = secondScreenView.bounds
displayOversLabel.frame = secondScreenView.bounds
现在,说了这么多,我刚刚向您展示的代码中的一个明显缺陷就是,我们在不考虑窗口大小(外部显示器)的情况下,对位置进行了硬编码。因此,更好的方法是让您学习自动布局,这将使您可以根据窗口大小自动自动将三个标签放置在合适的位置。