我有一个小问题。我正在开发一个iPad应用程序,并且我有一个UItableView。在桌子内部,每个单元格中的按钮都处于完美位置。现在,当用户点击这些按钮时,我希望打开一个UIImagePickerView,以便他可以选择图像并将其设置在那里。
现在,我正在使用UIPopOver的对象来打开imagePicker,我面临着这个问题。我需要popOver指向按钮单击它的完美位置。假设表格中第3行的按钮调用它,那么popOver应该相应打开。
我正在使用此代码打开popOver并设置其框架:
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePicker.delegate = self;
CGRect fr = tblView.frame;
fr.origin.x = fr.origin.x + btnActive.frame.origin.x;
fr.origin.y = fr.origin.y + btnActive.frame.origin.y;
fr.size = CGSizeMake(320, 480);
popOver = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
//self.popoverController = popOver;
popOver.delegate = self;
[popOver presentPopoverFromRect:btnActive.frame
inView:tblView
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
[imagePicker release];
现在,发生的情况是,每当我点击按钮的行时,popOver仅指向第一个可见行。当用户点击TableView中的任何按钮时,我调用一个名为- (void) setImage: (id) sender
的方法。我按如下方式分配按钮btnActive:
UIButton *btn = (UIButton *)sender;
btnActive = btn;
我完全得到了按钮的标签,但我无法在完美的地方获得popOver点。我猜这是因为每次btnActive的框架保持不变。我可能错了。请帮我解决这个问题。一百万提前感谢!
答案 0 :(得分:1)
tblView
不是按钮的超级视图。尝试使用cell.contentView
或cell
,具体取决于您如何布置UITableViewCell子类视图层次结构。您必须确定单击按钮的单元格。
[popOver presentPopoverFromRect:btnActive.frame
inView:cell.contentView
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];