1

iOS 6 の新しい自動レイアウト機能が気に入っていますが、MKAnnotationView サブクラスと組み合わせて使用​​すると、少し問題が発生しました。

初期化メソッドで自動サイズ変更マスク変換を無効にしました。

self.translatesAutoresizingMaskIntoConstraints = NO;

しかし、サブクラスの注釈を使用する MKMapView をロードすると、アプリは NSInternalInconsistencyException をスローします。

*** Assertion failure in -[ENMapAnnotationView layoutSublayersOfLayer:], /SourceCache/UIKit_Sim/UIKit-2372/UIView.m:5776
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Auto Layout still required after executing -layoutSubviews. ENMapAnnotationView's implementation of -layoutSubviews needs to call super.'

-layoutSubviews をオーバーライドしないので、Apple の MKAnnotationView の実装は自動レイアウトの準備ができていないように見えます。サブクラスで自動レイアウトを使用できるように、MKAnnotationView での自動レイアウト サポートの欠如を回避するスマートな方法はありますか?

4

3 に答える 3

4

ENMapAnnotationView の translatesAutoresizingMaskIntoConstraints を無効にしないでください (そうしないと、ピンを見逃すことになります)。ENMapAnnotationView の translatesAutoresizingMaskIntoConstraints に追加するビューを有効にしてください!!!

photoViewAddToAnnotationView.translatesAutoresizingMaskIntoConstraints = YES;

それでおしまい!自動レイアウトをオフにする必要はありません (自動レイアウトをオフにすると問題が解決する場合もあります)

于 2013-09-23T19:12:49.000 に答える
-1

おそらく、ENMapAnnotaitonViewクラスに-(void)layoutSubviewsメソッドを実装する必要があります。

于 2013-01-29T20:59:55.863 に答える