PrideChung / FontAwesomeKit

Icon font library for iOS. Currently supports Font-Awesome, Foundation icons, Zocial, and ionicons.
MIT License
2.81k stars 307 forks source link

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

Open YuriSolodkin opened 5 years ago

YuriSolodkin commented 5 years ago

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.

jkaunert commented 4 years ago

I also am now experiencing this exact issue. Xcode 11.3.1, macOS 10.15.2