0

ユーザーが選択したセルの上にUIMenuControlポップアップを表示しようとしています。

現在、私はこのコードを以下に持っています。これは常にiPhoneの画面の中央にUIMenuControlを配置します...

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

[tableView deselectRowAtIndexPath:indexPath animated:YES];

[self becomeFirstResponder];

UIMenuItem *menuItem = [[UIMenuItem alloc] initWithTitle:@"View" action:@selector(viewListing:)];
UIMenuItem *menuItem1 = [[UIMenuItem alloc] initWithTitle:@"Edit" action:@selector(editListing:)];
UIMenuItem *menuItem2 = [[UIMenuItem alloc] initWithTitle:@"Call" action:@selector(callListing:)];
UIMenuItem *menuItem3 = [[UIMenuItem alloc] initWithTitle:@"Open Houses" action:@selector(openHouses:)];

UIMenuController *menuController = [UIMenuController sharedMenuController];
[menuController setTargetRect:CGRectMake(0, 205, 320, 200) inView:self.view];
menuController.menuItems = [NSArray arrayWithObjects:menuItem, menuItem1, menuItem2, menuItem3, nil];
menuController.arrowDirection = UIMenuControllerArrowDown;
[menuController setMenuVisible:YES animated:YES];
}

どんな助けでも大歓迎です。

4

1 に答える 1

1

メニューが常に中央にあることは明らかです。座標をハードコーディングしています。

解決策
最初にセルの位置を計算する必要があります。targetRect次に、そこからフレームを計算します。

ヒント:セルのフレームは。で取得できますrectForRowAtIndexPath:

于 2012-06-17T16:45:20.750 に答える