iOS中更改UISearchBar占位符居左

作者: 90后的晨仔 | 来源:发表于2016-10-20 22:54 被阅读2050次
#特别声明博客来源地址:http://cathra.github.io/2016/03/17/UISearchBar-Placeholder-Left-align/
小白的我只是代码的搬运工🙂,

   UISearchBar的占位符 (Placeholder) 如何居左显示 ?

    做项目的时候遇到这个问题,虽然不是什么比较大的知识点,但是我觉着应该会有朋友纠结这个问题,所以这里就把自己查到的结果分享一下。

解决方法:新建一个UISearchBar的category,我这里新建的名字为UISearchBar+JCSearchBarPlaceholder

代码如下:

UISearchBar+JCSearchBarPlaceholder.h

#import <UIKit/UIKit.h>
@interface UISearchBar (JCSearchBarPlaceholder)
-(void)changeLeftPlaceholder:(NSString *)placeholder;
@end

UISearchBar+JCSearchBarPlaceholder.h

@implementation UISearchBar (JCSearchBarPlaceholder)
-(void)changeLeftPlaceholder:(NSString *)placeholder {
    self.placeholder = placeholder;
    SEL centerSelector = NSSelectorFromString([NSString stringWithFormat:@"%@%@", @"setCenter", @"Placeholder:"]);
    if ([self respondsToSelector:centerSelector]) {
        BOOL centeredPlaceholder = NO;
        NSMethodSignature *signature = [[UISearchBar class] instanceMethodSignatureForSelector:centerSelector];
        NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
        [invocation setTarget:self];
        [invocation setSelector:centerSelector];
        [invocation setArgument:&centeredPlaceholder atIndex:2];
        [invocation invoke];
    }
}
@end

最后在工程中用到UISearchBar的类中导入#UISearchBar+JCSearchBarPlaceholder.h头文件,

然后调用该方法即可:

-(void)changeLeftPlaceholder:(NSString *)placeholder;

demo的下载地址如下:  

https://github.com/624990742/GestureSummary

相关文章

  • iOS中更改UISearchBar占位符居左

    UISearchBar的占位符 (Placeholder) 如何居左显示 ? 做项目的时候遇到这个问题,虽然不是什...

  • iOS11-UISearchBar居中placeholder和i

    UISearchBar在ios11上的placeHolder和icon默认居左了。。。 下面是实现的居中的效果: ...

  • 莹莹

    占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符...

  • 莹莹

    占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符...

  • iOS开发中一角

    iOS开发_小知识点 1. 设置UITextField中占位符Placeholder文字颜色 注意: 设置了占位文...

  • 及时止损哪有那么容易

    占位符占位符占位符占位符占位符占位符占位符占位符占位符占位符 晚上清理微博时,发现了我以前发的微博 心情如同标题 ...

  • iOS11后设置UISearchBar占位符居中

    iOS11.0后UISearchBar默认不居中了。参考了这篇文章,封装了一个控件。 直接上效果图。 先来看看iO...

  • UISearchController的cancel按钮自定义中文

    iOS13 UISearchBar的层级发生了变化 iOS13 中取消了私有KVC 其中UISearchBar [...

  • golang fmt

    占位符 普通占位符 布尔占位符 整数占位符 指针 其它标记

  • Mybatis

    Mybatis 常见 #{} 和 ${} {}:sql占位符 ${}:字符替换,properties中的变量占位符...

网友评论

  • debe8ceda0a3:iOS11之前的版本,使用这个方法在触发UISearchBar的时候placeHolder会有一个左移的动画,理应不出现的,楼主解决了吗
  • 瞬csr:使用系统的私有方法,会不会被拒呢
    李某lkb:哪里是私有的?
  • 柚子橙黄:好用,感谢
  • 萧城x:是我的这边的问题 实测 好用
  • 萧城x:我的好像 占位文字不见了
  • qbylucky:牛逼

本文标题:iOS中更改UISearchBar占位符居左

本文链接:https://www.haomeiwen.com/subject/bvlquttx.html