UISeachBar之随心所欲
来源:互联网 发布:怎样删自己的淘宝好评? 编辑:程序博客网 时间:2024/05/23 01:15
21世纪是一个讲个性的时代,有个性才可能引领时代的潮流。个性说到底还是创新,只有不断的创新,我们才能够脱颖而出。那么想要设计一款好的搜索框,就必需具有它独特的风格。就控件来说,就需要一定的可操作性,能够根据自己的思维灵活变幻。下面我就来介绍一下如何打造一款属于自己的UISearchBar:
首先我们简单来了解一下它的结构,它大致包含两部分:UISearchBarBackGround和UITextField.
1.UISearchBarBackGround与UISearchBar的背景相关联的,通过改动UISearchBarBackGround,我们可以实现对UISearchBar背景的修改,一般来说这样的思维毫无疑问是正确的。但是有一点我们需要注意,IB中是没有直接操作背景的属性。所以我们一般是把它移除的。要移除它,首先就得定位它。通过下面的方法我们可以直接定位到它,并把它移除。
for (UIView *backgroundViewinself.subviews) { if ([backgroundViewisKindOfClass:NSClassFromString(@"UISearchBarBackground")]) { [backgroundViewremoveFromSuperview]; } }
2.有时候我们使用系统的UISeachBar时,会感觉到它的属性比较单一,不符合在某种场景下使用。比如它的颜色,它的图片等等。不能满足我们的需求时,那么我们就需要对它进行拓展。除去UISearchBarBackGround,那么就剩下UITextField可供操作了。首先我们应该获取到属于UITextField那部份。
UITextField *customField; NSInteger subViewNum = [self.subviewscount]; for (int i =0; i < subViewNum; i++) { if ([[self.subviewsobjectAtIndex:i]isKindOfClass:[UITextFieldclass]]) { customField = [self.subviewsobjectAtIndex:i]; } }
//如果上面的方法找不到searchField,那就试试下面的方法吧
if (customField ==nil) { NSArray *SubViewArray = [self subviews]; UIView *sview = [SubViewArrayobjectAtIndex:0]; NSArray *viewArray = [sviewsubviews]; for (int i =0; i < arrayView.count; i++) { if ([[viewArray objectAtIndex:i]isKindOfClass:[UITextField class]]) { customField = [viewArrayobjectAtIndex:i]; } } }
获取到了UITextField那部分后,我们就可以很容易的对编辑框内的属性进行修改。
A.通过修改UITextField的BackGround属性我们可以达到修改编辑框背景
B.通过修改UITextField的TextColor属性我们可以达到修改编辑框内搜索字体的颜色
C.通过修改UITextField的placeholderTextColor属性我们可以达到修改占位符的字体颜色
D.我们还可以修改编辑框内的搜索图标:
UIImage *searchimage = self.searchImage; UIImageView *searchimageView = [[UIImageView alloc] initWithImage:searchimage]; searchimageView.frame = CGRectMake(0, 0, 15, 15); customField.leftView = searchimageView;
打开iPhone的通讯录,点击搜索框,会出现一层半透明的试图(我个人称之为“遮盖层”)。这在开发过程是很常见的,大家或多或少都会用到吧。它是如何实现的呢,实现的方法多种多样吧,初期时我使用的UIView,现在我来介绍一种更加方便,实用的方法-UIButton.
//创建遮盖层 coverView = [[UIButton alloc] initWithFrame:CGRectMake(0, 64,SCREEN_WIDTH, SCREEN_HEIGHT)]; [coverView setBackgroundColor:[UIColor blackColor]]; [coverView setAlpha:0.5f]; [coverView addTarget:self action:@selector(Click:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:coverView];//实现遮盖层的点击事件- (void)Click:(UIButton *)btn{ [self coveringView:0];}//遮盖层效果变幻- (void)coveringView:(float)alphaValue{ [UIView animateWithDuration:0.2 animations:^{ [coverView setAlpha:alphaValue]; } completion:^(BOOL finished) { if (alphaValue<=0) { [customSearchBar resignFirstResponder]; [customSearchBar setShowsCancelButton:NO animated:YES]; [self.navigationController setNavigationBarHidden:NO animated:YES]; } }];}
UISearchBar就讲到这了,欢迎大家观临!也非常感谢大家指出不足之处。
- UISeachBar之随心所欲
- 随心所欲
- 机房收费系统之随心所欲
- UISeachBar 常用方法
- UISeachBar去掉icon
- split 随心所欲
- 随心所欲SOA
- 随心所欲 各取所需
- iOS UISeachBar键盘消失 虚拟按钮
- Qt之界面切换(360、新浪、人人界面,多语化切换随心所欲)
- Qt之界面切换(360、新浪、人人界面,多语化切换随心所欲)
- 如何用springcloud找妹纸之8--- 世界那么大,我想随心所欲去寻找(Zuul)
- 随心所欲产生图案(.Net)
- 随心所欲绘制状态栏
- 随心所欲Ajax图形篇
- 随心所欲改变窗口标题
- 网页打印,随心所欲
- Devunity:随心所欲在线编程
- KMP匹配算法
- SQL Server 和 Oracle对字段的操作
- JVM内存分析工具使用
- OpenCV中Mat与IplImage和CvMat类型之间的相互转换
- 股票相关的代码
- UISeachBar之随心所欲
- 安装QTP系统提示“ 计算机缺少Microsoft Visual C++运行时组件的解决方案
- 《从0到1》笔记 第七章 向钱看
- selenium查找iframe元素
- sql 2008中标识列循环自增的实现
- 找到 sql server 里面产生 block 的 session
- Java集合删除元素可能出现的问题
- 字符设备驱动之中断按键驱动
- springMVC搭建微信公共平台以及利用图灵机器人实现智能聊天