这是我的代码的一部分。
我想在背景图片上显示两个UILabel
和两个UITextField
:backgroundLogin.jpg
。
import Foundation
import UIKit
class LoginViewController:UIViewController
{
override func viewDidLoad() {
super.viewDidLoad()
let BackGroundImage:UIImageView = UIImageView(frame: CGRectMake(0, 0, self.view.frame.width , self.view.frame.height))
let image: UIImage = UIImage(named: "backgroundLogin.jpg")!
BackGroundImage.image = image
self.view.addSubview(BackGroundImage)
//self.view.backgroundColor = UIColor(patternImage: UIImage(named: "backgroundLogin.jpg")!)
username.text = "User name"
password.text = "Password"
}
@IBOutlet weak var username: UILabel!
@IBOutlet weak var password: UILabel!
}
但是当这段代码运行时,它看起来像是:
我希望它可以在图像上有两个标签,但是如何添加?
答案 0 :(得分:0)
您似乎在代码中添加UIImageView,在故事板上添加UILabels,然后在运行应用程序时,标签位于UIImageView后面,您无法看到。
只需检查它在viewDidLoad中添加BackGroundImage.hidden = true
。
您无法将UILabel添加到UIImageView中。一种解决方案是在代码中添加所有视图,首先是图像视图,然后是标签。其他选项将在故事板中以相同的顺序添加所有选项。
答案 1 :(得分:0)
你在这里以编程方式做了很多事情,你不需要这样做。
在Storyboard中,将UIImageView添加到空白的ViewController(你 如果你愿意,可以稍后重命名视图控制器)
选择新的UIImageView后,按住Control键并拖动以在视图控制器中创建一个名为backgroundImage的插座
选择UIImageView后,转到“属性”检查器并从下拉列表中选择要显示的图像。 框,选择您的图像。项目中的所有图像都应出现在 下拉框。
现在将一个UILabel添加到ViewController并按住control并拖动以在相应的代码中创建一个插座
在viewDidLoad()方法中,将插座置于前面
所有这些都需要代码:
class ViewController: UIViewController { @IBOutlet weak var backgroundImage: UIImageView! @IBOutlet weak var username: UILabel! override func viewDidLoad() { super.viewDidLoad() self.view.bringSubviewToFront(username) } }
答案 2 :(得分:0)
就像我在评论中所说,你应该尝试将UILabels带到前面。
由于您是以编程方式执行此操作,因此可以使用bringSubviewToFront
来完成此处Apple的文档以及您可以使用的其他UIView功能。注意:UILabel继承自UIView,因此您可以使用这些方法。
代码:
override func viewDidLoad() {
super.viewDidLoad()
let BackGroundImage:UIImageView = UIImageView(frame: CGRectMake(0, 0, self.view.frame.width , self.view.frame.height))
let image: UIImage = UIImage(named: "backgroundLogin.jpg")!
BackGroundImage.image = image
self.view.addSubview(BackGroundImage)
//self.view.backgroundColor = UIColor(patternImage: UIImage(named: "backgroundLogin.jpg")!)
username.text = "User name"
password.text = "Password"
self.view.bringSubviewToFront(username)
self.view.bringSubviewToFront(password)
}