3

私は次のようないくつかのオプションを見てきました:

* http://blog.waynehartman.com/archive/2012/01/07/uistoryboard-on-ios-5-the-good-the-bad-and-the.aspx*UIPopoverControllerアンカーの位置*UIPopover変更できますアニメーションのアンカーポイント?

マップビューでマップ注釈のポップオーバーを表示しようとしています。今のところ、回避策を使用しています。ストーリーボードビューコントローラーでビューを作成し、ポップオーバーをそのビューに固定しました。ビューを正しい場所に移動してから、次を使用してポップオーバーをロードします。

(a)注釈の場所を見つける

CGPoint annotationPoint = [_mapView    convertCoordinate:self.selectedAnnotationView.annotation.coordinate toPointToView:_mapView];
float boxDY= annotationPoint.y;
float boxDX= annotationPoint.x;
CGRect box = CGRectMake(boxDX,boxDY,1,1);

(b)ストーリーボードで作成したビュー(anchorView)を注釈の場所に移動します

anchorView.frame = box;

(c)ポップオーバーを表示する

[annotationPopoverController presentPopoverFromRect:box inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];  

私の直感は、この回避策は必要ないということです。これを行うためのより簡単でエレガントな方法はありますか?

ありがとう、マヘシュ

4

3 に答える 3

2

アンナに感謝します。重複した投稿についてお詫びします-Stackoverflowマークアップに少し問題がありました。

私はポップオーバーを起動するためにセグエを使用していました-したがって、私はポップオーバーを正しく配置することができませんでした。

私が使用した回避策は、セグエを使用している場合のポップオーバーの配置に適していると思います。

そうは言っても、私は今あなたの答えによって提案された方法を使用しています。

を使用してポップオーバーを起動します

self.detailsPopover = [[self storyboard] instantiateViewControllerWithIdentifier:@"identifierName"];

//... config code for the popover 

UIPopoverController *pc = [[UIPopoverController alloc] initWithContentViewController:detailsPopover];

//... store popover view controller in an ivar

[self.annotationPopoverController presentPopoverFromRect:selectedAnnotationView.bounds inView:selectedAnnotationView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];  
于 2012-06-18T07:51:43.003 に答える
0

テーブルと動的アンカーポイントを使用して同様の回答を作成しました。私のソリューションでは、セグエを使用してストーリーボードの流れを維持できます。答えを少し調整する必要がありますが、基本的には同じです。

手動で (動的 UITableView セルから) ポップオーバー セグエを実行することは可能ですか?

于 2013-02-26T21:55:12.607 に答える