2009-09-03 16 views
0

3つのsubUIView 1,2,3にuiscrollviewがあります。私はsubUIView1,2,3のコンテンツを動的に読み込みます。ここで私はこれらの3 subUIviewとscrollviewを作成し、各subUIView iphone Dev:無効なコンテキストCGContextDrawLayerInRect

  • のデフォルトサイズ で、私は、各subUIViewのための操作を作成する手順

    1. あり、私たちは操作1,2,3をしましょう。操作キューに追加する(操作1)すべての操作(操作1)で、後で関連subUIView(サブビュー1)で描画されるコンテンツを計算します。

    2. 計算が完了したら、CGLayerを作成してUISubview1で添付します。すべてのUIサブビューフレームとバインドされたレイアウトスクロールビューのサブビューをリセットし、関連するsubUIview1のsetNeedDisplayをリセットします。 SubUIView drawRectメソッドで次の操作に移動して

    3. 、私はCGLayerDrawInRectを呼び出します。

    時にはi このエラーは無効です。 は時々、それが正常に動作し、エラーはいつかそれが

    Any idea about this error will be welcome. 
    

    が起こっていません。

  • 答えて

    1

    デバッグに非常に時間がかかり、最終的に問題が解決され解決されました。ここでは、操作2が既にのdrawRectは、操作2は何とかsubview1,2,3を変更する実行している間に、実行されて、操作1 setNeedDisplayが送り出されたとき

    1. 、のdrawRectでのdrawRect一度
    2. が呼ばれて、まだ呼び出されていないことですが、レイアウトとフレームを同時に作成できます。だから、悪いことが起こった、コンテキストが無効にその時間となります
    3. フレームが変化し、また最悪されている、あなたはexe_bad_access偽メッセージ
    4. 解決ソリューションを受け取ることができるので、私は、操作1のdrawRectが行われていることを確認するために葛を設定操作2を実行します。

      私はXCodeがひどい開発ツールであると言わざるを得ませんが、MSスタジオツールを比較します。それは無効なContextまたはexe_bad_accessのようなメッセージをランダムに与えます。貧しい開発者の生産性はどこですか?しかし、Iphone OSXはMS windows mobileよりはるかに優れています。そのため、私はXcodeを創造的に使用するために懸命に働いています。

    関連する問題