Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
998 views
in Technique[技术] by (71.8m points)

swift - UISearchBar in UITableView header layout issue in iOS 14

I am using the new UISearchController with searchbar inside tableview header.Everything works fine in portrait orientation but when I rotate to landscape and uisearchbar start editing its frame is out of screen,clipping the cancel button. my code for creating searchcontroller

tableView.tableHeaderView = searchController.searchBar

Here is my sample code UISearchController sample

Rotation has no frame issue in landscape but only when uisearchbar starts editing [landscape searchbar

Cancel button clipping

When rotate back to portrait layout of uisearchbar is still incorrectportrait screen after rotating back There is no issue if I use UITableviewController but I have to implement with uitableview.Is there any setting I am missing in iOS 14 ?

Note:I have to use tableHeaderView not navigationItem.searchController = searchController

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Try adjusting the frame of search bar in viewWillTransition method that in your corresponding UIViewController . viewWillTransition is called every time during rotation and enables you to change layout during rotation of your UIViewController.

here is example code:

    override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    coordinator.animate( alongsideTransition: { (UIViewControllerTransitionCoordinatorContext) -> Void in
        adjustSearchbarFrame()
    }, completion: { (UIViewControllerTransitionCoordinatorContext) -> Void in
    })
    super.viewWillTransition(to: size, with: coordinator)
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

57.0k users

...