2017-02-26 21 views
0

我用下面的代碼添加了一個左視圖,以我的文本字段:爲什麼我在文本字段中的左視圖不起作用?

usernameField.leftViewMode = UITextFieldViewMode.always 
    passwordField.leftViewMode = UITextFieldViewMode.always 

    let usernameImageView = UIImageView() 
    let usernameImage = UIImage(named: "user icon grey.png") 
    usernameImageView.image = usernameImage 
    usernameField.leftView = usernameImageView 

    let passwordImageView = UIImageView() 
    let passwordImage = UIImage(named: "lock icon grey.png") 
    passwordImageView.image = passwordImage 
    passwordField.leftView = passwordImageView 

這沒有工作,然後我加了一個UIDesignable,一個非常整潔的過程,我從這個問題採取了以下StackOverflow上。這意味着我可以在故事板中看到圖標,如下所示。但是,這並沒有顯示出來。 Simulator Photo without text field iconsStoryboard with the text field icons

Swift add icon/image in UITextField

+0

你能打開視圖調試器,並檢查幀是不是零? – GoodSp33d

+0

@ GoodSp33d以前從未使用過,現在感覺像是一個新手......幀數爲零,這可能是什麼原因? –

+0

修復了@ GoodSp33d,感謝您的幫助 –

回答

1

的問題是如何創建圖像視圖。你首先創建一個沒有大小的空圖像視圖。然後將圖像分配給圖像視圖,但不會自動調整圖像視圖的大小。

有兩種解決方案。

  1. 告訴圖像視圖在分配圖像後自行調整大小。

    let usernameImageView = UIImageView() 
    let usernameImage = UIImage(named: "user icon grey.png") 
    usernameImageView.image = usernameImage 
    usernameImageView.sizeToFit() 
    
  2. 使用圖像創建圖像視圖。這是更簡單的方法。

    let usernameImage = UIImage(named: "user icon grey.png") 
    let usernameImageView = UIImageView(image: usernameImage) 
    
0

問題是與你的代碼。現在使用這個代碼你的左視圖在textField中工作。

@IBOutlet weak var name: UITextField! 
override func viewDidLoad() { 
    super.viewDidLoad() 
    usernameField.leftViewMode = .always 
    let usernameImageView = UIImageView() 
    usernameImageView.frame = CGRect(x: 0, y: 0, width: 25, height: 25) 
    let usernameImage = (your image name) 
    usernameImageView.image = usernameImage 
    usernameField.leftView = usernameImageView 
相關問題