iOS - UITableView с пользовательским фреймом и пользовательской ячейкой для отображения с него UIPopOver - PullRequest
0 голосов
/ 22 марта 2012

Мой вопрос состоит из двух частей:

Часть 1:

У меня есть UITableView, который имеет 4 строки, когда пользователь нажимает на любую ячейку,он отобразит внутренний UITableView, я увеличил размер мастера UITableView, затем вставил внутренний UITableView

internalTableView = [[InternalApartmentTableViewController alloc] initWithFrame:CGRectMake(0, 44, 550, (([[tableContent objectAtIndex:indexPath.row] count] - 1) * 44))];
[cell addSubview:internalTableView];

didSelectedRow:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (selectedInternal != -1) {
    selectedInternal = -1;
} else {
    selectedInternal = indexPath.row;
    [internalTableView removeFromSuperview];
    [internalTableView release];
}
[tableViews reloadData];

}

я тестировал приложение, используя небольшое количество строк для внутреннего UITableView, высоту = 700, и все работает отлично, между тем, когда я использовал реальные данные, высота = 2500 икогда данные отображаются, высота появляется около = 1000, мне не нужно прокручивать внутренний UITableView, просто прокручивается мастер UITableView.

Итак, как я могу увеличить размер кадраUTableView столько, сколько я хочу?

Часть 2:

Во внутреннем UITableView я использовал пользовательскую ячейку, которая содержит метки иизображения и 2 кнопки, одна из кнопок, когда она нажата, я хочу показать UIPopOver оттуда, где я не могу определить место кнопки ввид, на самом деле, я не могу понять, какой вид мне нужно использовать для отображения UIPopOver на экране, используя

[popoverController presentPopoverFromRect: //(How can i get the rect for the button)
                   inView: //(in which view should the PopOver appear, master UITableView or Internal UITableView or Custom Cell)
                   permittedArrowDirections:UIPopoverArrowDirectionLeft
                   animated:YES];

Любая помощь будет оценена.

1 Ответ

1 голос
/ 12 июня 2012

// когда нажата btn пользовательской ячейки

if(![tempPopover isPopoverVisible])
{

    UIButton* btn=(UIButton *)sender;
    NSIndexPath*indexpath=[NSIndexPath indexPathForRow:btn.tag inSection:0];
    cell=(customCell *)[tableView cellForRowAtIndexPath:indexpath];

        popoverController *objView = [[popoverController alloc] init];

        tempPopover = [[UIPopoverController alloc] initWithContentViewController:objView];
        [tempPopover setPopoverContentSize:CGSizeMake(160, 160)];
        [tempPopover presentPopoverFromRect:CGRectMake(655, cell.contentView.frame.origin.y-105, 150, 150) inView:cell.contentView permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...