弹出控件在选择不同的表视图行时更改其位置

时间:2012-03-06 06:12:03

标签: objective-c xcode4 uipopovercontroller popover

我分别使用两个弹出式控制器进行国家和州选择。国家和州的详细信息放在一个表格视图中。当我点击一个国家/地区行时,相应的状态弹出窗口会显示在给定帧的另一个弹出窗口上。这很好用对于4行数据。但是当国家/地区数据行超过4时,状态弹出窗口将显示在另一个角落,即更改其位置。 这是在didSelect行方法

中创建popover的代码
StateSelection_iPad *classCourse = [[StateSelection_iPad alloc] init];
popover = [[UIPopoverController alloc] initWithContentViewController:classCourse];
    popover.delegate = self;
    classCourse.popNewDelegate=self;
    [popover presentPopoverFromRect:CGRectMake(50,-40, 200, 300) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionLeft animated:YES];
[classCourse release];

和.m class

self.contentSizeForViewInPopover = CGSizeMake(250, 220);

如果每次点击表行并且行数

,如何在给定帧上获取弹出窗口

1 个答案:

答案 0 :(得分:0)

使用此代码显示popoveron选定的行

  

UITableViewCell * clickedCell =(UITableViewCell *)[[发送者superview] superview];

     

NSIndexPath * clickedButtonPath = [table2 indexPathForCell:clickedCell];

     

int rows = clickedButtonPath.row;

     

int section1 = clickedButtonPath.section;

     OR
     

NSSet * touches = [event allTouches];   UITouch * touch = [触及anyObject];   CGPoint currentTouchPosition = [touch locationInView:self.tableView];

     

[popover presentPopoverFromRect:CGRectMake(currentTouchPosition.x-10,clickedCell.frame.origin.y + 100,10,10)inView:self.view allowedArrowDirections:UIPopoverArrowDirectionLeft animated:YES];

根据您的要求更改框架。