Во-первых, я хотел бы сказать, что я действительно новичок в разработке для ipad / ipod / iphone, а также в target-c.
С учетом вышесказанного я пытаюсь разработать небольшое приложение для iPad, используя Xcode и IB, в основном у меня есть таблица, для каждого UITableViewCell в таблице я добавил в accessoryView кнопку, содержащую изображение.
Вот код:
UIImage *img = [UIImage imageNamed:@"myimage.png"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
CGRect frame = CGRectMake(0.0, 0.0, img.size.width, img.size.height);
button.frame = frame; // match the button's size with the image size
[button setBackgroundImage:img forState:UIControlStateNormal];
// set the button's target to this table view controller so we can interpret touch events and map that to a NSIndexSet
[button addTarget:self action:@selector(checkButtonTapped:event:) forControlEvents:UIControlEventTouchUpInside];
button.backgroundColor = [UIColor clearColor];
cell.accessoryView = button;
Пока все хорошо, теперь проблема в том, что я хочу, чтобы элемент управления PopOver появлялся, когда пользователь нажимал кнопку на дополнительном просмотре ячейки.
Я пробовал это на «accessoryButtonTappedForRowWithIndexPath» tableView:
UITableViewCell *cell = [myTable cellForRowAtIndexPath:indexPath];
UIButton *button = (UIButton *)cell.accessoryView;
//customViewController is the controller of the view that I want to be displayed by the PopOver controller
customViewController = [[CustomViewController alloc]init];
popOverController = [[UIPopoverController alloc]
initWithContentViewController: customViewController];
popOverController.popoverContentSize = CGSizeMake(147, 122);
CGRect rect = button.frame;
[popOverController presentPopoverFromRect:rect inView:cell.accessoryView
permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
Проблема с этим кодом в том, что он показывает Popover в верхней части представления приложения, при отладке я видел значения «rect», и они:
x = 267
y = 13
поэтому я думаю, что совершенно очевидно, почему PopOver отображается так высоко в представлении, поэтому мой вопрос, как я могу получить правильные значения для PopOver, которые будут отображаться чуть ниже кнопки на accessoryView ячейки?
Кроме того, как вы можете видеть, я говорю ему использовать "cell.accessoryView" для атрибута "inView:", это нормально?