【问题标题】:Adding buttons inside UISearchBar在 UISearchBar 中添加按钮
【发布时间】:2014-04-09 14:22:13
【问题描述】:

我想在 UISearchbar 内添加一个按钮(栏),在 UISearchbar 外添加一个按钮(栏),如图所示。对此的任何帮助表示赞赏。

提前致谢 纳文

【问题讨论】:

    标签: ios uisearchbar uisearchdisplaycontroller


    【解决方案1】:

    编辑:

    正如@NicolasMiari 在 cmets 中所说:

    这在 iOS 7 之后不再适用,因为书签按钮呈现在栏的输入文本字段内。


    对于搜索栏中的按钮,您可以使用书签按钮并更改其图像。您只需转到情节提要(如果您使用情节提要),选择搜索栏,然后激活“显示书签按钮”选项。然后,在您的代码中,设置您想要的图像:

    [_searchBar setImage:[UIImage imageNamed:@"My-Custom-Image"] forSearchBarIcon:UISearchBarIconBookmark state:UIControlStateNormal];
    

    您可以使用以下委托方法检测对该按钮的点击:

    - (void)searchBarBookmarkButtonClicked:(UISearchBar *)searchBar {
    
        NSLog(@"click");
    }
    

    【讨论】:

    • 这在 iOS 7 之后不再适用,因为书签按钮呈现在 内部 栏的输入文本字段中。
    • 这适用于 iOS 10 和 11。请参阅 Strat Aguilar 的 Swift 4 oneliner:searchBar.setImage(UIImage(named: "myImage"), for: UISearchBarIcon.bookmark, state: .normal)
    【解决方案2】:

    斯威夫特 4

    class ViewController: UIViewController {
    
       var searchController = UISearchController(searchResultsController: nil)
    
       override func viewDidLoad() {
          searchController.delegate = self 
          searchController.searchBar.delegate = self 
          searchController.searchBar.showsBookmarkButton = true
          searchController.searchBar.setImage(UIImage(named: "myImage"), for: .bookmark, state: .normal)
       }
    
    }
    
    extension ViewController: UISearchBarDelegate {
    
       func searchBarBookmarkButtonClicked(_ searchBar: UISearchBar) {
          print("click")
       }
    
    }
    

    【讨论】:

      【解决方案3】:

      在 UISearchBar 中添加按钮的最快方法是像这样更新书签按钮:

      [self.searchDisplayController.searchBar setImage:[UIImage imageNamed:@"customImage.png"] forSearchBarIcon:UISearchBarIconBookmark state:UIControlStateNormal];
      

      如果需要调整偏移量,

      [self.searchDisplayController.searchBar setPositionAdjustment:UIOffsetMake(-10, 0) forSearchBarIcon:UISearchBarIconBookmark];
      

      不要忘记激活故事板中的“显示书签按钮”选项。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-02
        相关资源
        最近更新 更多