在外屏中移动标签

时间:2018-12-19 03:14:22

标签: ios swift external-display

我想将标签移动到外部显示器上的任何位置。 (例如,displayRunsLabel位于顶部并居中,或者距顶部和右侧约40px)

我的标签显示在屏幕上。我当前正在使用文本对齐方式。

最好的方法是什么?

这是我的外部显示器:

ExternalDisplayScreenshot

Screen shot

以下是代码:

 // 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)
    }

1 个答案:

答案 0 :(得分:0)

标签或任何其他UIView的位置是其origin的{​​{1}}的位置,{CG}代表其左上角。

所以,您目前在说:

frame

嗯,这很愚蠢,因为您给了所有三个标签相同的帧!因此,它们彼此重叠,并且(如您正确地说),您只能通过给它们提供不同的文本对齐方式来阅读它们。

相反,给他们每一个不同的框架-将标签放在您想要的位置。例如:

    displayWicketLabel.frame = secondScreenView.bounds
    displayRunsLabel.frame = secondScreenView.bounds
    displayOversLabel.frame = secondScreenView.bounds

现在,说了这么多,我刚刚向您展示的代码中的一个明显缺陷就是,我们在不考虑窗口大小(外部显示器)的情况下,对位置进行了硬编码。因此,更好的方法是让您学习自动布局,这将使您可以根据窗口大小自动自动将三个标签放置在合适的位置。