6

FPPopoverを使用して、iPhone アプリのポップ オーバー ビューを表示しています。しかし、私はそれを提示するときに、非常に低くしか提示できないか、トップにジャンプするという問題があります. そして、これはとにかく断ち切られるずっと前です。

例えば:

[self.speedOptionsPopover presentPopoverFromPoint:CGPointMake(0, 235)];

正常に動作しますが、235 の代わりに 255 を配置すると (下から 40 ピクセルが適切であるため)、上にジャンプして戻ります。

誰もこれを経験したことがありますか、それともどうすれば修正できますか?

また、ポップオーバーのコンテンツが常に上から 50px のように開始される理由を説明できれば、ボーナス ポイントとして、より高く開始する必要があります。これもどうすれば変更できますか?

作成からのその他のコード:

- (void)speedOptionsTapped:(UIBarButtonItem *)sender {
    // Set the delegate in the controller that acts as the popover's view to be self so that the controls on the popover can manipulate the WPM and number of words shown
    self.speedOptionsController.delegate = self;

    self.speedOptionsPopover.arrowDirection = FPPopoverNoArrow;
    self.speedOptionsPopover.border = NO;
    self.speedOptionsPopover.contentSize = CGSizeMake(320, 190);
    [self.speedOptionsPopover presentPopoverFromPoint:CGPointMake(0, 235)];
}
4

1 に答える 1

3

FPPopoverController.m のコードのこの部分を置き換えてみてください。

//ok, will be vertical
if(ht == best_h || self.arrowDirection == FPPopoverArrowDirectionDown)

このコードで:

//ok, will be vertical
if (self.arrowDirection == FPPopoverNoArrow)
{
   r.origin.x = p.x;
   r.origin.y = p.y;
}
else if(ht == best_h || self.arrowDirection == FPPopoverArrowDirectionDown)

この問題が発生する理由は、マクロ FPPopoverArrowDirectionIsVertical が、矢印のないポップオーバーを垂直矢印があると見なすためです。その結果、ポップオーバーをトリガーしたビューのできるだけ近くにポップオーバーを最適に配置しようとします。

上記のようにコードを置き換えると、矢印のないポップオーバーの特別なケースが作成され、再配置せずに元のポイントが尊重されるようになります。

于 2013-05-21T19:26:48.380 に答える