2015-11-05 74 views
0

这是我的代码的一部分。 我想在背景图上显示两个UILabel和两个UITextFieldbackgroundLogin.jpg如何在背景图片上添加UILabel和UIText

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! 

} 

但此代码运行时,它看起来像:

enter image description here

我希望它可以有图像上的标签,但如何添加?

+0

背景图像可在标签和文本的顶部堆叠。你有没有尝试先在故事板中添加UIImageView? – jhamPac

+0

你有没有试过self.view.bringSubviewToFront(YOUR_UILABEL) – boidkan

+0

我还没试过。我对swift和IOS开发很陌生,有很多我不知道的功能 – beasone

回答

0

就像我在评论中所述,你应该尝试把UILabels带到前面。

由于您正在以编程方式执行此操作,因此可以使用bringSubviewToFront完成此处为Apple的文档以及您可以使用的其他UIView功能。注意:UILabel从UIView继承,所以你可以使用这些方法。

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/#//apple_ref/doc/uid/TP40006816-CH3-SW46

代码:

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

似乎要添加在代码中的UIImageView和故事板的UILabels,那么当你运行应用程序的标签是UIImageView的后面,你看不到呢。

只是检查它在viewDidLoad中添加BackGroundImage.hidden = true

不能添加到UILabels一个UIImageView。一种解决方案是在代码中添加所有视图,第一个是图像视图,然后是标签。其他选项将按照相同的顺序添加到故事板中。

像这样:enter image description here

0

你做了很多在这里编程,你不需要做。

  1. 在故事板,一个UIImageView添加到空白的ViewController(你 可以在以后,如果你想重新命名视图控制器)

  2. 选择了新的UIImageView,控制拖动到创建一个电源插座对视图控制器命名为backgroundImage

  3. 选中UIImageView后,通过转到Attribute Inspector并从下拉框 框中选择您想要它显示的图像,选择您的图像。您项目中的所有图片都应显示在 的下拉框中。

  4. 现在添加一个UILabel到ViewController和控制拖动,以在相应的代码

  5. 在viewDidLoad中()方法的出口,使出口到前

所有这需要代码明智的是:

class ViewController: UIViewController { 

    @IBOutlet weak var backgroundImage: UIImageView! 
    @IBOutlet weak var username: UILabel! 

    override func viewDidLoad() { 
    super.viewDidLoad() 

    self.view.bringSubviewToFront(username) 
    } 
}