4

アプリは、Xcode 8 Beta 6 および Swift 3 に更新する前は完全に動作していました。他に何も変更していませんが、現在 2 つの問題があります。

まず、いくつかのランダム ビューが表示されなくなりました。それらはただの四角い、色付きの箱です。ただし、それらの上のビューが表示されます。

Interface Builder で:

ビュー

シミュレーターで:

シミュレーターでのみロック

次に、私のモデル VC がセグエされたときに表示されなくなりました。以前はそうでしたが、セグエが呼び出されていることがわかりますが、今はありません。

いずれかの問題について誰かがアイデアを提供できれば、それは大歓迎です。

4

4 に答える 4

0

iOS 10 UIView ライフサイクルと AutoLayout に問題があります。

つまり、viewDidLoad&などのメソッドではviewWillAppear、すべての UI 要素のフレームが `{{0,0},{1000,1000}} であるということです。

角を丸く設定すると、500pxで角が丸くなり、UIコンポーネントが見えなくなります:)

この問題をどのように解決したかは、サブクラス内またはサブクラス内で丸みを帯びた角を設定するviewDidLayoutSubviewことUIViewControllersです。 layoutSubviewsUIView

于 2016-09-16T14:42:03.257 に答える
0

これは間違いなく Xcode 8 の AutoLayout の問題です。AutoLayout を使用しないと問題は発生しません。プロトコルを使用してこの回避策を作成しました。

protocol Roundable {}

extension Roundable where Self: UIView{

    func roundCorners(){

        self.layer.cornerRadius = self.bounds.height / 2
    }
}

class CustomView: UIView, Roundable {

    override var bounds: CGRect {

        didSet{
            roundCorners()
        }
    }
}

ビューを CustomView に含めると、丸みを帯びて表示されます。ここではプロトコルを使用します。この方法では、角を丸くする機能を備えた既存の UIView サブクラスを簡単に拡張できるからです。もちろん、境界プロパティ オブザーバーで直接 cornerRadius を設定することも可能です。

于 2016-09-11T09:32:39.233 に答える