Tôi đang sử dụng đoạn mã từ Tito để thêm một nút tùy chỉnh để thanh tab của tôi: https://github.com/tciuro/CustomTabBarLàm thế nào để ẩn nút thanh tab tùy chỉnh khi hidesBottomBarWhenPushed là "TRUE"
(subclassing UITabBarController và thêm một nút tùy chỉnh sử dụng
// .. created a UIButton *button
[self.view addSubview:button];
)
này hoạt động tốt với ứng dụng kịch bản của tôi dựa trên ngoại trừ trường hợp của một subview trong một bộ điều khiển chuyển hướng với tùy chọn "Ẩn thanh dưới cùng trên đẩy" được kích hoạt. Điều này ẩn thanh tab như đã hứa, nhưng không phải nút tùy chỉnh. Có vẻ như nút sẽ được thêm làm chế độ xem phụ vào thanh tab? Tôi đã thử mã xấu xí này mà thậm chí không làm cho nút hiển thị:
for(UIView *view in self.view.subviews)
{
if([view isKindOfClass:[UITabBar class]])
{
[view addSubview:button];
break;
}
}
Bất kỳ ý tưởng nào?
UPDATE: Giải pháp của tôi: Trong ApplicationDelegate của tôi xác định các phương pháp sau, mà tôi gọi bất cứ khi nào cần thiết trong các phương pháp viewWillAppear hoặc viewWillDisappear:
-(void)hideCenterButton:(BOOL)animated
{
if(animated){
[UIView animateWithDuration:0.3
delay:0.0f
options:UIViewAnimationCurveLinear
animations:^{
CGRect frame = self.centerButton.frame;
frame.origin.x = -100;
self.centerButton.frame = frame;
}
completion:^(BOOL finished){
}];
}
}
-(void)showCenterButton:(BOOL)animated
{
if(animated){
[UIView animateWithDuration:0.35
delay:0.0f
options:UIViewAnimationCurveLinear
animations:^{
CGRect frame = self.centerButton.frame;
frame.origin.x = (self.view.superview.frame.size.width/2) - (self.centerButton.frame.size.width/2);
self.centerButton.frame = frame;
}
completion:^(BOOL finished){
}];
}
}
tôi đã phải thiết lập thời gian của phim hoạt hình đến 0,35 s để có được hiệu ứng mượt mà trong sự hài hòa với thanh tab.
Hey, 'UIViewAnimationCurveLinear' sẽ ném một cảnh báo, bạn nên sử dụng' UIViewAnimationOptionCurveLinear' để thay thế. – abriggs
Sau một số thử nghiệm, có vẻ như tùy chọn hình ảnh động tự nhiên nhất là 'UIViewAnimationOptionCurveEaseInOut' – abriggs
Tôi đã thử nghiệm mã của bạn và nó hoạt động, nhưng các nút trở lại đằng sau những thanh tab, giải pháp nào cho vấn đề này? – xeravim