Подпросмотр в UITableView

#ios #objective-c #uitableview #uiview #subview

#iOS #objective-c #uitableview #uiview #вложенный просмотр

Вопрос:

Я добавил подпредставление в свой контроллер представления таблицы. Подпредставление имеет три подпредставления (кнопка закрытия, панель инструментов, используемая для размытия основного представления, и табличное представление). Проблема в том, что вы все еще можете видеть часть основного представления в нижней части подпредставления. Я попытался инициализировать подпредставление с помощью этого фрейма, contentView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, screenWidth, screenHeight)]; , и это устраняет проблему, но затем, если я прокручиваю вниз табличное представление родительского представления, подпредставление невозможно увидеть. Как я могу это исправить?

введите описание изображения здесь

 - (void)showMenu
{
    CGRect screenRect = [[UIScreen mainScreen] bounds];
    CGFloat screenWidth = screenRect.size.width;
    CGFloat screenHeight = screenRect.size.height;

    UIColor *kfbBlue = [UIColor colorWithRed:8.0/255.0f green:77.0/255.0f blue:139.0/255.0f alpha:1];

    contentView = [[UIView alloc]initWithFrame:self.tableView.bounds];
    contentView.autoresizesSubviews = YES;
    contentView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
    contentView.backgroundColor = [UIColor clearColor];

    UIButton *closeMenuButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [closeMenuButton setFrame:CGRectMake(275, 10, 40, 40)];
    [closeMenuButton setImage:[UIImage imageNamed:@"close"] forState:UIControlStateNormal];
    [closeMenuButton addTarget:self action:@selector(closeMenu) forControlEvents:UIControlEventTouchUpInside];

    blurredView = [[UIToolbar alloc]initWithFrame:contentView.bounds];
    [blurredView setBarStyle:UIBarStyleBlack];
    [blurredView setBarTintColor:kfbBlue];

    MenuTableViewController *menu = [[MenuTableViewController alloc]initWithNibName:@"MenuTableViewController" bundle:nil];
    menu.view.frame = CGRectMake(0, 30, screenWidth, screenHeight);
    [self.view addSubview:contentView];
    [contentView addSubview:blurredView];
    [self addChildViewController:menu];
    [contentView addSubview:menu.view];
    [contentView addSubview:closeMenuButton];
    self.navigationController.navigationBarHidden = YES;
    self.tableView.scrollEnabled = NO;
}
  

Комментарии:

1. Можете ли вы добавить картинку, чтобы помочь визуализировать это? Также есть причина, по которой вы используете TableViewController и добавляете эти представления в качестве подпросмотров в tableview вместо использования ViewController, который реализует <UITableViewDelegate, UITableViewDataSource>?

2. @LyricalPanda, я добавил картинку.

3. Есть ли причина использовать TableViewController вместо UIViewController, если вы играете с представлениями / подразделами?

4. MenuTableViewController на самом деле является подклассом UIViewController. Я просто не менял название.