0

メリークリスマス。

uitableview を含むビューがあります。テーブルセルの1つが選択されたときに追加情報を表示するためにwepopoverを使用しています。ただし、私の問題は、いくつかのセルを選択すると、ポップオーバーの一部がビューの外に表示され、表示されないことです。コンテンツのサイズが正しく設定され、原点も正しく設定されています。

ポップオーバーを追加するために、フレームが uitableview セルのフレームである場合にこれを行います

detailedInfoView=[[ScheduleDetailedInformation alloc] initWithNibName:@"ScheduleDetailedInformation" bundle:nil];

        detailedInfoView.contentSizeForViewInPopover = detailedInfoView.view.frame.size;    

        navPopover = [[WEPopoverController alloc] initWithContentViewController:detailedInfoView];

        [navPopover presentPopoverFromRect:frame
                                    inView:self.tableview
                  permittedArrowDirections:UIPopoverArrowDirectionUp | UIPopoverArrowDirectionDown|UIPopoverArrowDirectionLeft|UIPopoverArrowDirectionAny
                                  animated:YES];

誰かが私が忘れたことや回避策を教えてもらえますか?

ありがとう

4

1 に答える 1

0

残念ながら、誰も私に黄金の答えを提供してくれませんでした。しかし、私は自分で問題を解決しました。ポップオーバー ビューを追加する前に、それを uitableview に追加していましたが、これがそもそも問題を引き起こしました。代わりに親ビューに追加しましたが、これにより配置エラーが発生し、次のコード行で解決しました。これは、uitableviewcell の位置を親ビューの位置に変換します。

CGPoint tmp= [[tableView cellForRowAtIndexPath:indexPath].superview convertPoint:[tableView cellForRowAtIndexPath:indexPath].frame.origin toView:nil];

CGRect frame = CGRectMake(tmp.x, tmp.y-(CGRectCell.size.height/2), CGRectCell.size.width, CGRectCell.size.height);

これが他の誰かを助けることを願っています:)

于 2011-12-27T13:44:18.923 に答える