यह किसी भी बार (TabBar या ToolBar) के साथ होता है जो पारभासी है।
तो इसे ठीक करने का एक तरीका _tabBar.translucent = NO;
(मेरे मामले में) सेट करना है । यह नेविगेशन बार को पारभासी छोड़ते समय शीर्ष नेविगेशन बार के नीचे अवांछित छाया को रोकता है। दुर्भाग्य से नीचे की पट्टी अब पारभासी नहीं है।
इसे पारभासी में वापस सेट किया जा सकता है, लेकिन यह सब पूरे पुशिंग एनीमेशन के समाप्त होने के बाद होना है, इसलिए इस संपत्ति को स्विच करना अच्छी तरह से ध्यान देने योग्य है।
मामले में, हालांकि नीचे की पट्टी को भी पारभासी होना पड़ता है और मैं नहीं चाहता कि उपयोगकर्ता उस परिवर्तन को देखें जिसे मैंने इसे निम्नलिखित के साथ हल किया था:
/* create a simple quick animation of the bottom bar
just before pushing the new controller */
[UIView animateWithDuration:0.1
animations:^{
_tabBar.barTintColor = [UIColor colorWithWhite:0.97254901960784 alpha:1.0]; // this is the closest color for my case
_tabBar.translucent = NO;
} completion:^(BOOL finished) {
/* now when the animation that makes the bar not translucent
is finished we can push the new controller
the controller is instantiated before the animation code */
[self.navigationController pushViewController:controller animated:YES];
}];
तो viewDidAppear:
मैं बस में है कि वापस reverts:
[UIView animateWithDuration:0.1
animations:^{
_tabBar.barTintColor = nil;
_tabBar.translucent = YES;
}];
विशेष रूप से दिखने में बस थोड़ा सा बदलाव है लेकिन यह मुश्किल से ध्यान देने योग्य है और यह नेविगेशन बार के नीचे छाया होने से बेहतर है।
आशा है कि यह दूसरों को बार पारभासी रखने में मदद करेगा जब तक कि Apple इस व्यवहार को ठीक नहीं करता है क्योंकि सलाखों को कुछ मामलों में छिपाया जाता है, जबकि इसके विपरीत अन्य पदों में विशेष रूप से इसके लिए सुझाव दिया गया था। UITabBar
darkColor
दृश्य अभी भी है और इस समस्या का कारण बनता है।