2015-11-05 64 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) 
    } 
}