自定义searchbar,修改背景色

1、自定义searchBar:

(1).h:

#import <UIKit/UIKit.h>

@interface EMSearchBar : UISearchBar

/**
 *  自定义控件自带的取消按钮的文字(默认为“取消”/“Cancel”)
 *
 *  @param title 自定义文字
 */
- (void)setCancelButtonTitle:(NSString *)title;

@end

(2).m:

#import "EMSearchBar.h"

@implementation EMSearchBar

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        for (UIView *subView in self.subviews) {
            if ([subView isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {
                [subView removeFromSuperview];
            }

            if ([subView isKindOfClass:NSClassFromString(@"UISearchBarTextField")]) {
                UITextField *textField = (UITextField *)subView;
                [textField setBorderStyle:UITextBorderStyleNone];
                textField.background = nil;
                textField.frame = CGRectMake(8, 8, self.bounds.size.width - 2* 8,
                                             self.bounds.size.height - 2* 8);
                textField.layer.cornerRadius = 6;

                textField.clipsToBounds = YES;
                textField.backgroundColor = [UIColor whiteColor];
            }
        }
    }
    return self;
}

/**
 *  自定义控件自带的取消按钮的文字(默认为“取消”/“Cancel”)
 *
 *  @param title 自定义文字
 */
- (void)setCancelButtonTitle:(NSString *)title
{
    for (UIView *searchbuttons in self.subviews)
    {
        if ([searchbuttons isKindOfClass:[UIButton class]])
        {
            UIButton *cancelButton = (UIButton*)searchbuttons;
            [cancelButton setTitle:title forState:UIControlStateNormal];
            break;
        }
    }
}

@end

2、修改背景色

- (UISearchBar *)searchBar
{
    if (!_searchBar) {
        _searchBar = [[EMSearchBar alloc] initWithFrame: CGRectMake(0, 0, self.view.frame.size.width, 44)];
        _searchBar.delegate = self;
        _searchBar.placeholder = NSLocalizedString(@"search", @"Search");
        //        _searchBar.backgroundColor = [UIColor colorWithRed:245/255.0 green:245/255.0 blue:245/255.0 alpha:1.000];
        _searchBar.backgroundImage = [self imageWithColor:[UIColor clearColor]];
    }

    return _searchBar;
}

- (UIImage *)imageWithColor:(UIColor *)color
{
    CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, [color CGColor]);
    CGContextFillRect(context, rect);

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return image;
}
时间: 2024-11-08 20:36:29

自定义searchbar,修改背景色的相关文章

自定义searchBar外观

最近,在项目过程中遇到要自定义SearchBar的外观,虽然自己觉得用系统默认的外观就行了,不过UI设计师要求不用系统的默认样式,要跟app主题保持一致. 图1:设计效果图 从上图可以看出,我们要做的UISearchBar要有圆角,边框颜色,取消按钮颜色,背景透明等等. 开始以为可能要自己写一个自定义的UISearchBar控件了,后面研究了一番,发现可以设定系统UISearchBar属性来更改,便把经验记录下来. 首先,我们看下系统默认的SearchBar的样式,离我们的目标样式确实相差很大,

VBA读取、增加自定义和修改文档属性

读取系统文档属性 Sub read()On Error Resume Nextrw = 1Worksheets(1).ActivateFor Each p In ActiveWorkbook.BuiltinDocumentProperties    Cells(rw, 1).Value = p.Name    Cells(rw, 2) = p.Value    rw = rw + 1NextEnd Sub 读取自定义文档属性 Sub Macro1() Cells(1, 2) = ActiveWo

Adobe Acrobat Pro 修改背景色

CreateTime--2017年8月1日10:05:58Author:Marydon Adobe Acrobat Pro 如何修改背景色 参考:百度经验 在菜单栏选择“编辑”,下拉栏中选择最后一项“首选项”在左侧选择“辅助工具”,然后在右侧上方勾选“替换文档颜色”在自定义颜色中点击“页面背景”颜色框,点击下方的“其它颜色” 注意:只对文本内容的pdf文档有效,扫描版的设置无效.

Android中自定义ActionBar的背景色等样式style

Android中想要去自定义ActionBar的背景色等样式. [折腾过程] 1.自己找代码,发现对应的配置的地方了: AndroidManifest.xml ? 1 2 <application     android:theme="@style/AppTheme" > 找到 /res/values/styles.xml 中的: ? 1 2 3 <style name="AppTheme" parent="@android:style/

C# 自定义线程修改UI(一)

在Wpf中界面显示数据的修改,都是通过UI线程完成,如果尝试从其他线程中直接修改控件的值回抛出异常,“调用线程无法访问此对象,因为另一个线程拥有该对象”. 例如:http://www.cnblogs.com/tianma3798/p/5762016.html 解决方案1:通过Invoke或者BeginInvoke将操作发送给Dispatcher 对象,委托Dispatcher去执行UI操作,每个UI控件都有Dispatcher 对象 代码实例: Xaml代码 <ProgressBar x:Nam

从头自定义SearchBar和SearchDisplayController

自定义UISearchBar和UISearchDisplayController 自定义UISearchBar和UISearchDisplayController 起因 步骤 效果图 主要实现 实现CustomSearchTextField控件 layoutSubViews代码 layoutSubviews代码说明 实现CustomSearchBar相关组件 CustomSearchBar主要组成控件 layoutSubviews代码说明 实现CustomSearchDisplayControl

iOS开发之自定义SearchBar导航条右侧显示放大镜

ios中导航条SearchBar控件虽然说很好用,但是有的时候控件的样式不能达到我们的需要,比如我们需要导航条的右侧有个放大镜,系统提供的控件没有这样的,这就需要我们自定义一个这样的searchBar了. 1,因为searchBar控件输入的时候和textField想似,所以我们自定义的控件继承与textField,起名字为searchView 我们可以看一下searchView.h里面的内容 1 #import <UIKit/UIKit.h> 2 3 @interface searchVie

IOS开发—无需自定义,修改tabbar背景颜色

最近修改的项目都是基于IOS 5.0或以上的版本的,在IOS 6一下的版本中,系统默认的tabbar是黑色的,但是此项目需要改成兼容IOS 7和IOS 8的,大家都知道IOS 7开始,IOS的 UI 进入了扁平的时代,改动也是相当大的,tabbar默认的改成了白色半透明的效果,需要将tabbar修改成黑色的效果,但是又不想将源代码改动的过大,今天也是不费辛苦,找到了解决的方案. 首先要创建tabBarController的对象,这里就不在多说. 下面是主要的代码: UIView *backVie

android 修改背景色(转)

修改为黑底白字 修改AndroidManifest.xml把android:theme="@style/AppTheme" 修改为android:theme="@android:style/Theme.Black“ 修改为白底黑字 android:theme="@android:style/Theme.Light“