Skip to content

iOS 13 issue when image is set to button in viewDidLayoutSubviews #106

Open
@YuriSolodkin

Description

The problem only appears in iOS 13, it works fine in iOS 12.
When an image is created via FontAwesomeKit and then assigned to a UIButton, it creates another call to viewDidLayoutSubviews which results in an infinite loop and finally an app crash.

The following example illustrates the problem:

class ViewController: UIViewController {

    @IBOutlet weak var button: UIButton!

    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
    
        let fakImage = FAKFontAwesome.addressBookOIcon(withSize: 30)
        let image = fakImage?.image(with: CGSize(width: 30, height: 30))
    
        // This works fine
        // button.setImage(UIImage.add, for: .normal)
    
        // But this fails
        button.setImage(image, for: .normal)
    }
}

System images or images loaded from files are working fine.

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions