UIView under UINavigationBar on IOS7

2019-01-23 10:02发布

问题:

We're working on the transition between IOS6 and IOS7 and have the next issues, for the moment without solution:

The structure of our view is the next one:

  1. UIView
  2. UIToolbar for ad-hoc buttons (filter button for the list)
  3. UISearchBar over the UIToolbar to integrate the search component with the list
  4. UITableView

Working perfectly on the previous versions of the IOS SDK.

But in IOS7 we have the next troubles:

  1. The UIToolbar and UISearch bar is not visible anymore
  2. We integrated the UIRefreshBar component and after refresh the UITableView always move under the UINavigationBar

Any suggestions?

回答1:

Regarding
1.The UIToolbar and UISearchBar is not visible any more write the below code in viewDidLoad and your problem will solved.

[self setEdgesForExtendedLayout:UIExtendedEdgeLeft | 
                                UIExtendedEdgeBottom | 
                                UIExtendedEdgeRight];


回答2:

  1. In viewDidLoad this worked for me

    [self setEdgesForExtendedLayout:UIRectEdgeNone];

  2. If you like storyboard, select the viewController and make sure Extended Edges >> Under top bars is not selected.


Update: For people like me, who can't install Xcode 5 available only in Mountain Lion:

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000
    [self setEdgesForExtendedLayout:UIRectEdgeNone];
#endif


回答3:

Regarding 2. We integrated the UIRefreshBar component and after refresh the UITableView always move under the UINavigationBar

Make the NavigationBar not translucent, by default it is which allows views to scroll underneath it.