Swift / cornerRadius and masksToBounds allow UIImageView to fade

I have UITableViewControllerwith UIImageView. The content is loaded with the following simple code.

@IBOutlet weak var avatarImageView: UIImageView!

override func viewDidLoad() {
    super.viewDidLoad()

    updateUI()
}

func updateUI() {

    backendless.userService.currentUser.retrieveProperties()

    avatarImageView.layer.cornerRadius = avatarImageView.frame.size.width/2
    avatarImageView.layer.masksToBounds = true

    let imgURL = NSURL(string: (backendless.userService.currentUser.getProperty("Avatar") as? String)!)
    avatarImageView.sd_setImageWithURL(imgURL)

    tableView.reloadData()

}

ImageView does not appear.

But if I remove the following code, the UIImageView will be correctly installed and displayed.

avatarImageView.layer.cornerRadius = avatarImageView.frame.size.width/2
avatarImageView.layer.masksToBounds = true

What am I missing? Help is much appreciated .:

PS:

Xcode 8.0

Swift 2.3

The contours for ImageView are set to 120 * 120

sd_setImageWithURL= pod 'SDWebImage'

enter image description here

+4
source share
4 answers

, updateUI. viewDidLoad . , ; , . avatarImageView.frame, , . , ! , , . viewDidAppear viewDidLayoutSubviews. , , , , ( , , - ):

var didConfigureUI = false
func viewDidLayoutSubviews() {
    if !didConfigureUI {
        didConfigureUI = true
        updateUI()
    }
}
+4

:

override func viewDidLoad() {
    super.viewDidLoad()

    self.view.layoutIfNeeded() // <- This will update your initial view frames
    updateUI()
}

Xcode 8.0, , viewDidLoad, - x: 0.0, y: 0.0, w: 1000.0, h: 1000.0, 500.0pt. , , .

+5

, . UITableViewController. , , , , , . UIIMageView UIViewController. .

avatarImageView.frame.size.width = 120.0
avatarImageView.frame.size.height = 120.0

, . UIViewController, UITableViewController.

+1
"xy.view.layoutIfNeeded()" 

must be called every time it calls a property before the view finishes loading for example imageView.view.layoutIfNeeded () to call the height and width values

0
source

Source: https://habr.com/ru/post/1654995/


All Articles