将UIPopover正确放置在动态按钮旁边

时间:2012-02-20 13:53:12

标签: ios uibutton

我正在创建一个动态数量的按钮(最终,这些按钮将被放置在水平滚动视图中),并且当按下按钮时我显示一个弹出窗口,但是我需要设置弹出框以显示为所选按钮的右侧,但此时,弹出窗口每次出现在同一个地方......

这就是我正在尝试的:

    for (int i=0; i < 10; i++) {        
    childButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];

    childButton.frame = CGRectMake(100*i, 170, 100, 30);

    [childButton setTitle:@"Test" forState:UIControlStateNormal];

    [childButton addTarget:self action:@selector(presentPopoverMenu) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:childButton];
}

最终我要创建两行图像,但这仅用于测试...

-(void)presentPopoverMenu/*:(id)sender*/
{
    MenuPickerController *mp = [[MenuPickerController alloc] init];
    popoverMenu = [[UIPopoverController alloc] initWithContentViewController:mp];

    popoverMenu.popoverContentSize = CGSizeMake(290, 300);
    [popoverMenu presentPopoverFromRect:[childButton bounds]
                                 inView:childButton 
               permittedArrowDirections:UIPopoverArrowDirectionAny 
                               animated:NO];

}

我在想它可能只是从最后一个按钮获取值,但我不确定,我会怎么做呢?

1 个答案:

答案 0 :(得分:1)

当然它使用最后一个按钮值,因为你的ivar childButton指向它。不要childButton而是sender。取消注释并使用。选择器也是@selector(presentPopoverMenu:)