iOS开发:常用、实用的方法和技巧
来源:互联网 发布:linux下 vim安装 编辑:程序博客网 时间:2024/04/30 03:36
- 判断字符串是不是以中文开头
- (BOOL)isChineseFirst:(NSString *)firstString { //是否以中文开头(unicode中文编码范围是0x4e00~0x9fa5) int utfCode = 0; void *buffer = &utfCode; NSRange range = NSMakeRange(0, 1); //判断是不是中文开头的,buffer->获取字符的字节数据 maxLength->buffer的最大长度 usedLength->实际写入的长度,不需要的话可以传递NULL encoding->字符编码常数,不同编码方式转换后的字节长是不一样的,这里我用了UTF16 Little-Endian,maxLength为2字节,如果使用Unicode,则需要4字节 options->编码转换的选项,有两个值,分别是NSStringEncodingConversionAllowLossy和NSStringEncodingConversionExternalRepresentation range->获取的字符串中的字符范围,这里设置的第一个字符 remainingRange->建议获取的范围,可以传递NULL BOOL isChinese = [firstString getBytes:buffer maxLength:2 usedLength:NULL encoding:NSUTF16LittleEndianStringEncoding options:NSStringEncodingConversionExternalRepresentation range:range remainingRange:NULL]; if (isChinese && (utfCode >= 0x4e00 && utfCode <= 0x9fa5)) return YES; else return NO;}
- 键盘回收
- (void)setUpForDismissKeyboard { UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAnywhereToDismissKeyboard:)]; NSOperationQueue *operation = [NSOperationQueue mainQueue]; [[NSNotificationCenter defaultCenter] addObserverForName:UIKeyboardWillShowNotification object:nil queue:operation usingBlock:^(NSNotification * _Nonnull note) { [self.view addGestureRecognizer:tapGesture]; }]; [[NSNotificationCenter defaultCenter] addObserverForName:UIKeyboardWillHideNotification object:nil queue:operation usingBlock:^(NSNotification * _Nonnull note) { [self.view removeGestureRecognizer:tapGesture]; }];}
- 禁止侧滑返回上一个界面
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { self.navigationController.interactivePopGestureRecognizer.enabled = NO; }
- 隐藏导航栏最下面的黑线
- (void)hiddenNavLine { if ([self.navigationController.navigationBar respondsToSelector:@selector( setBackgroundImage:forBarMetrics:)]){ NSArray *list=self.navigationController.navigationBar.subviews; for (id obj in list) { if ([UIDevice currentDevice].systemVersion.floatValue >= 10.0) { UIView *view = (UIView*)obj; for (id obj2 in view.subviews) { if ([obj2 isKindOfClass:[UIImageView class]]) { UIImageView *image = (UIImageView*)obj2; image.hidden = YES; } } } } }}
- 去除自带的searchBar的背景View
- (void)removeSearchBarBackGroundView { for(int i = 0 ;i < _searchBar.subviews.count;i++){ UIView * backView = _searchBar.subviews[i]; if ([backView isKindOfClass:NSClassFromString(@"UISearchBarBackground")] == YES) { [backView removeFromSuperview]; [_searchBar setBackgroundColor:[UIColor clearColor]]; break; } else { NSArray * arr = _searchBar.subviews[i].subviews; for(int j = 0;j < arr.count; j++){ UIView * barView = arr[i]; if ([barView isKindOfClass:NSClassFromString(@"UISearchBarBackground")] == YES) { [barView removeFromSuperview]; [_searchBar setBackgroundColor:[UIColor clearColor]]; break; } } } }}
- 标签栏的背景图显示错乱问题解决办法:
//将图片如下设置[[UIImage imageNamed:@"me@2x.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]
- 网络请求设置超时请求(基于AFNetworking3.0封装的GET,POST请求用方法)
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];[manager.requestSerializer willChangeValueForKey:@"timeoutInterval"]; manager.requestSerializer.timeoutInterval = 15.f; [manager.requestSerializer didChangeValueForKey:@"timeoutInterval"];
- 实用的获取图片的方法,防止内存溢出:
// 建议使用该方法:NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"图片" ofType:@"png"]; UIImage *image = [[UIImage alloc] initWithContentsOfFile:imagePath];// 不建议使用该方法:UIImage *image = [UIImage imageNamed:@"图片.png"];
0 0
- iOS开发:常用、实用的方法和技巧
- iOS开发之-收集的不常用却实用的小方法和技巧
- iOS开发之-收集的不常用却实用的小方法和技巧
- iOS-收集的不常用却实用的小方法和技巧
- iOS-收集的不常用却实用的小方法和技巧
- iOS开发的一些实用小技巧
- CSS最常用和实用的技巧
- 最常用和实用的CSS技巧
- 最常用和实用的CSS技巧
- ios开发常用的技巧
- iOS开发常用的技巧
- iOS开发一些实用的小方法
- iOS 开发中常用知识点和技巧
- nspredicate实战:实用的基础技巧,和IOS开发正则相关
- 记录一些开发中常用的方法和技巧
- iOS开发常用代码(实用)
- eclipse常用快捷键 所有快捷键 最实用的开发技巧
- 快速掌握iOS 开发的技巧和方法
- Ubuntu 14.04 VPS部署个人博客(nginx+php+MariaDB+phpMyAdmin+WordPress)
- 运行QT5.7程序显示没有权限问题(Operation net permitted)
- 第6章 面向对象的程序设计(2)创建对象
- 【语言-C++】多线程通同步 互斥体 HANDLE
- Java虚拟机之垃圾收集器
- iOS开发:常用、实用的方法和技巧
- Redis读写分离
- Butter Knife的使用
- POI导出Excel——模板类的封装
- android 使用viewpager实现广告轮播效果
- Apache kafka 工作原理介绍
- JavaScript while 循环
- iOS打印当前控制器名称、事件名称
- BlockingQueue(阻塞队列)详解