在搜索栏的左侧和右侧添加按钮

Posted

技术标签:

【中文标题】在搜索栏的左侧和右侧添加按钮【英文标题】:Add buttons to the left and right of the searchbar 【发布时间】:2015-11-05 07:51:21 【问题描述】:

我想要一个在文本字段左侧和右侧都有一个按钮的搜索栏。与当前 Alien Blue reddit 应用上的搜索栏相同。

到目前为止,我最接近于实现这一点的是,我已经能够使用这行代码更改右侧“取消”按钮的文本。

[self.searchController.searchBar setValue:@"Hello" forKey:@"_cancelButtonText"];

但这并没有真正的帮助,因为我希望右侧打开不同的搜索选项,而不是取消搜索。

帮助我____,你是我唯一的希望

【问题讨论】:

可能您应该使用 xib 或编程自定义 UISearch。这样你就可以设置它的大小并在它旁边放两个按钮。 【参考方案1】:

先放效果

//RWSearchBar.h
#define BarFrame CGRectMake(100, 20, 200, 44)

#import <UIKit/UIKit.h>

@interface RWSearchBar : UISearchBar

@end

//RWSearchBar.m
#import "RWSearchBar.h"

@implementation RWSearchBar

- (void)layoutSubviews 
    self.frame = BarFrame;


@end

//RWViewController.m
#import "ViewController.h"
#import "RWSearchBar.h"

@implementation ViewController

- (void)viewDidLoad 
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    RWSearchBar *searchBar = [[RWSearchBar alloc] init];
    [self.view addSubview:searchBar];
    CGRect aFrame = BarFrame;

    UIButton *leftBtn = [[UIButton alloc] initWithFrame:CGRectMake(aFrame.origin.x - 60, aFrame.origin.y, 60, 44)];
    leftBtn.backgroundColor = [UIColor blueColor];
    UIButton *rightBtn = [[UIButton alloc] initWithFrame:CGRectMake(aFrame.origin.x + aFrame.size.width, aFrame.origin.y, 60, 44)];
    rightBtn.backgroundColor = [UIColor yellowColor];

    [self.view addSubview:leftBtn];
    [self.view addSubview:rightBtn];

您可以自己定制更多的视觉效果。

【讨论】:

以上是关于在搜索栏的左侧和右侧添加按钮的主要内容,如果未能解决你的问题,请参考以下文章

UIBarButtonItem导航栏添加按钮

如何淡出导航栏的最右侧并向其添加新按钮

换日栏的哪个 UI 元素?

jQuery Mobile 工具栏

jQuery Mobile 工具栏

Sencha Touch TabBar 在标签左侧添加按钮