2017-01-09 7 views
0

В моем приложении существует сценарий, в котором я скрываю нижний TabBar [self.tabBarController.tabBar setHidden: YES], а затем добавляю UIView, содержащий UIButtons в освобожденной области в нижней части представления.Space Behind TabBar Unrecognizable

Область, в которой TabBar не отвечает на события касания, поэтому я не могу выбрать любую из кнопок в UIView.

Я провел исследование здесь, и этот вопрос существует некоторое время, но старые ответы больше не работают. [self setNeeds Display] и self.tabBarController.tabBar.translucent = YES, больше не работают, поскольку вы все еще не можете нажать UIButtons. На стороне примечания, я создал свой UIView с UIButtons в раскадровки и поместил нижнее ограничение в супервизор. Пожалуйста, предоставьте ответ, который, как известно, работает для iOS 9 и 10.

+0

вы должны установить рамку представления после скрыть свой контроллер панели вкладок –

ответ

-1

Я создал тестовый проект, чтобы проверить функциональность, которую вы хотите.

класс ViewController: UIViewController {

@IBOutlet weak var testButton: UIButton! 
override func viewDidLoad() { 
    super.viewDidLoad() 
    testButton.addTarget(self, action: #selector(tapped), for: .touchUpInside) 
    self.tabBarController?.tabBar.isHidden = true 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

func tapped(_ sender:UIButton){ 
    print("Tapped") 
} 

}

В соответствии с вашим требованием, я создал UIView, содержащий UIButton как подвид и создал отверстие для кнопки. Как, я нажимаю на кнопку, срабатывает действие - постукивание.

0

Я создал проект в соответствии с вопросом. Это нормально. Пожалуйста, попробуйте это.

- (void)viewDidLoad { 
[super viewDidLoad]; 
[self.tabBarController.tabBar setHidden:YES]; 

UIView *view = [[UIView alloc]initWithFrame:self.tabBarController.tabBar.frame]; 
[self.view addSubview:view]; 
view.backgroundColor = [UIColor redColor]; 
UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 100,view.frame.size.height)]; 
[view addSubview:btn]; 
[btn setTitle:@"clicked me " forState:UIControlStateNormal]; 
[btn addTarget:self action:@selector(btnclicked:) forControlEvents:UIControlEventTouchDown]; 
} 

-(void)btnclicked:(UIButton *)sender{ NSLog(@"button clicked event."); }