Alk
Alk

Reputation: 5547

UITextVIew not visible on Screen

I have the following two views :

 let captionTextView: UITextView = {
    let textField = UITextView(frame: CGRectMake(0,0, 250, 100))
    textField.text = "Enter caption..."
    textField.textColor = UIColor(red: (69/255.0), green: (209/255.0), blue: (153/255.0), alpha: 1.0)
    textField.editable = true
    textField.backgroundColor = UIColor.blueColor()
    textField.layer.cornerRadius = 5
    textField.layer.borderColor = UIColor(red: (69/255.0), green: (209/255.0), blue: (153/255.0), alpha: 1.0).CGColor
    textField.layer.borderWidth = 1
    textField.font = UIFont.boldSystemFontOfSize(15)
    return textField
}()

let infoLabel : UILabel = {
    let myLabel = UILabel()
    myLabel.textColor = UIColor(red: (69/255.0), green: (209/255.0), blue: (153/255.0), alpha: 1.0)
    myLabel.text = "Testing"
    myLabel.font = UIFont.systemFontOfSize(16.0)
    myLabel.textAlignment = NSTextAlignment.Center
    myLabel.adjustsFontSizeToFitWidth = true
    return myLabel
}()

I am adding them to my view Controller with the following constraints :

func setupViews() {
    self.view.addSubview(captionTextView)
    self.view.addSubview(infoLabel)
    infoLabel.translatesAutoresizingMaskIntoConstraints = false
    captionTextView.translatesAutoresizingMaskIntoConstraints = false
    self.view.addConstraint(NSLayoutConstraint(item: infoLabel, attribute: .Top, relatedBy: .Equal, toItem: self.view, attribute: .Top, multiplier: 1, constant: 35))
    self.view.addConstraint(NSLayoutConstraint(item: infoLabel, attribute: .Leading, relatedBy: .Equal, toItem: self.view, attribute: .Leading, multiplier: 1, constant: 10))
    self.view.addConstraint(NSLayoutConstraint(item: infoLabel, attribute: .Trailing, relatedBy: .Equal, toItem: self.view, attribute: .Trailing, multiplier: 1, constant: -10))
    self.view.addConstraint(NSLayoutConstraint(item: captionTextView, attribute: .Top, relatedBy: .Equal, toItem: infoLabel, attribute: .Top, multiplier: 1, constant: 35))
    self.view.addConstraint(NSLayoutConstraint(item: captionTextView, attribute: .Leading, relatedBy: .Equal, toItem: self.view, attribute: .Leading, multiplier: 1, constant: 10))
    self.view.addConstraint(NSLayoutConstraint(item: captionTextView, attribute: .Trailing, relatedBy: .Equal, toItem: self.view, attribute: .Trailing, multiplier: 1, constant: -10))


}

The label shows properly where I want it to be. The textView is not visible on screen at all. If I change its type to a textField or a UILabel it works perfectly fine, so I don't know which constraints I am missing here. What am I missing?

Upvotes: 4

Views: 7158

Answers (1)

Hanisa Mohamed
Hanisa Mohamed

Reputation: 51

You need to add a bottom anchor to the textView since it inherits from UIScrollView.

As written in the Apple Docs: https://developer.apple.com/documentation/uikit/uitextview

Upvotes: 5

Related Questions