#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. Я просто не менял название.