1.属性字符串的使用
可为一段文本的不同区间设置不同显示格式

int remainCount = 999;
NSMutableAttributedString *attributes = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%d+新品",remainCount]];
//添加前景色属性(此处将0-3范围的字符串的颜色设置为紫色)类似还可添加不同的属性
[attributes addAttribute:NSForegroundColorAttributeName value:[UIColor purpleColor] range:NSMakeRange(0, 3)];
//设置属性文字
_remianCountLabel.attributedText = attributes;

2.iOS富文本组件的实现-DTCoreText
DTCoreText是个开源的iOS富文本组件,它可以解析HTML与CSS最终用CoreText绘制出来,主要用来替代高内存消耗的低性能的UIWebView

3.TextKit

4.代码快速排版快捷键
全选ctrl+A , 快速排版ctrl+I

5.自定义按钮的图片和文字的显示位置

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setTitle:@"我在这里" forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"pp"]; forState:UIControlStateNormal];button.titleEdgeInsets = UIEdgeInsetsMake(0, -40, 0, 0);button.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 10, 0);

UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right);
四个参数分别表述上、左、底、右距离默认位置的距离

6.UIImage图片旋转
通过UIImage的类方法实现

//下面的类方法可对图片进行旋转的同时进行缩放
+ (UIImage *)imageWithCGImage:(CGImageRef)cgImage scale:(CGFloat)scale orientation:(UIImageOrientation)orientation ;

示例:

UIImage *image = [UIImage imageWithCGImage:[UIImage imageNamed:@"pp"].CGImage scale:1 orientation:UIImageOrientationLeft];

7.UITextView设置占位文本
在控制器的view上添加UITextView和UILabel,这里将UILabel设置为我们的占位文本,并设置UITextView的代理之后编写代理方法
UITextView *_secretContent;
UILabel *_placeHolderLabel;

#pragma mark 带有placeholder的textview的实现
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{if ([text isEqualToString:@"\n"]) {//检测到“完成”[textView resignFirstResponder];//释放键盘return NO;}if (_secretContent.text.length==0){//textview长度为0if ([text isEqualToString:@""]) {//判断是否为删除键_placeHolderLabel.hidden=NO;//隐藏文字}else{_placeHolderLabel.hidden=YES;}}else{//textview长度不为0if (_secretContent.text.length==1){//textview长度为1时候if ([text isEqualToString:@""]) {//判断是否为删除键_placeHolderLabel.hidden=NO;}else{//不是删除_placeHolderLabel.hidden=YES;}}else{//长度不为1时候_placeHolderLabel.hidden=YES;}}return YES;
}

8.dispatch_once实现单例
void dispatch_once( dispatch_once_t *predicate, dispatch_block_t block);
predicate:用于检查该代码块是否已经被调度的谓词
示例代码如下:

+ (id)sharedManager {static dispatch_once_t once;static id instance;dispatch_once(&once, ^{instance = [self new];});return instance;
}

9.iOS正则匹配(当前时间的正则匹配)
正则匹配表达式基础入门:http://blog.csdn.net/lxcnn/article/details/4268033

//当前时间的正则匹配
NSDate *date = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd-MM-yyyy HH:mm:ss"];
NSString *urlString = [formatter stringFromDate:date];
NSLog(@"urlString=%@",urlString);
NSError *error;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^(0[1-9]|[1|2][0-9]|3[0|1])[-|/|.](0[1-9]|1[0|1|2])[-|/|.](19|20)\\d\\d\\s(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$" options:0 error:&error];if (regex != nil) {
NSTextCheckingResult *firstMatch = [regex firstMatchInString:urlString options:0 range:NSMakeRange(0, [urlString length])];
if (firstMatch) {
         NSRange resultRange = [firstMatch rangeAtIndex:0];
         //从urlString中截取数据
         NSString *result = [urlString substringWithRange:resultRange];
         NSLog(@"正则匹配结果=%@",result);
     }
}

输出结果:
2015-04-17 14:19:14.713 PredicateTest[2023:97164] urlString=17-04-2015 14:19:14
2015-04-17 14:19:14.719 PredicateTest[2023:97164] 正则匹配结果=17-04-2015 14:19:14

10.使用Object-C字面量

//字典的存取
NSDictionary *dict = @{@"s1":@"v1",@"s2":@"v2"};
NSString *string = dict[@"s1"];
//相当于[NSNumber numberWithInt:10]
NSNumber *number = @10;
//数组的存取
NSArray *array = @[@1,@2,@"s"];
NSString *s = array[1];

11.iOS8.x模拟器输入中文
模拟器设置->通用->键盘->键盘->添加新键盘->简体中文(英文环境下:Settings->General->Keyboard->Keyboards->Add New Keyboard->Chinese(Simplified)->Pinyin-QWERTY->Done
然后在Xcode菜单Product->Scheme->EditScheme->Options->Application Region->中国

12.将汉字转成拼音

NSMutableString *pinyin = [@"吧啦吧啦小魔仙变身!!!" mutableCopy];
CFStringTransform((__bridge CFMutableStringRef)pinyin, NULL, kCFStringTransformMandarinLatin, NO);
CFStringTransform((__bridge CFMutableStringRef)pinyin, NULL, kCFStringTransformStripCombiningMarks, NO);
NSLog(@"%@", pinyin);

13.将OC代码转成C++底层代码
终端输入:clang -rewrite-objc main.m

iOS开发知识点总结(三)相关推荐

  1. iOS开发备战金三银四·头条三面记录

    一面 一.自我介绍 简单介绍一下你自己吧 解析:简单介绍下自己的名字,教育背景,现在的工作,做过的项目 二.自我介绍衍生的口头问题 讲讲下你在你项目中做过的优化或者技术难点 解析:介绍了自己封装的一个 ...

  2. iOS开发知识点总结

    main文件做了这几件事:1. 创建当前的应用程序2. 根据4个参数的最后为应用程序设置代理类(默认情况下是AppDelegate)3. 将appDelegate 和 应用程序 建立关联(指定代理,) ...

  3. 如何深入理解 iOS 开发中的锁?

    摘要 本文的目的不是介绍 iOS 中各种锁如何使用,一方面笔者没有大量的实战经验,另一方面这样的文章相当多,比如 iOS中保证线程安全的几种方式与性能对比.iOS 常见知识点(三):Lock.本文也不 ...

  4. 理解:iOS开发中锁的实现原理

    摘要 本文的目的不是介绍 iOS 中各种锁如何使用,一方面笔者没有大量的实战经验,另一方面这样的文章相当多,比如 iOS中保证线程安全的几种方式与性能对比.iOS 常见知识点(三):Lock.本文也不 ...

  5. 深入理解 iOS 开发中的锁

    深入理解 iOS 开发中的锁 摘要 本文的目的不是介绍 iOS 中各种锁如何使用,一方面笔者没有大量的实战经验,另一方面这样的文章相当多,比如 iOS中保证线程安全的几种方式与性能对比.iOS 常见知 ...

  6. iOS开发中的锁实现猜测

    本文的目的不是介绍 iOS 中各种锁如何使用,一方面笔者没有大量的实战经验,另一方面这样的文章相当多,比如 iOS中保证线程安全的几种方式与性能对比.iOS 常见知识点(三):Lock.本文也不会详细 ...

  7. 测试开发知识点整理(二)

    软件测试基础 软件测试的概念 63.软件测试的重要性 64.软件测试的对象有哪些(掌握) 65. 软件测试的目的是什么(掌握) 66. 软件测试的依据是什么(掌握) 67.软件需求的类型及软件需求分析 ...

  8. 测试开发知识点整理(四)

    Web自动化,接口测试和app测试 Web自动化 Web性能自动化 193. LoadRunner工具 194. 服务器性能监控工具(了解) 单元测试框架 195. JUnit框架 196. hamc ...

  9. iOS开发之三大计时器(Timer、DispatchSourceTimer、CADisplayLink)

    1. 概述 说起计时器,很多开发人员第一时间就会想起Timer,但是随着使用的深入,慢慢就发现Timer不是很精确,随后就有想到GCD Timer,专业点就是DispatchSourceTimer,除 ...

最新文章

  1. Nature综述|预测生物学:微生物复杂性的解析、模拟与应用
  2. tensorflow 模型预训练后的参数restore finetuning
  3. 提示错误“'=' not supported between instances of 'range' and 'int'”
  4. RESTful服务的第三部分:HATEOAS和Richardson成熟度模型
  5. java图形界面关键字_怎样用Java编写一个图形界面,要求可以利用关键词查询txt中的内容...
  6. 网页打印物理大小尺寸的单位换算
  7. windows api 每日一练(5)基本内存操作
  8. ubuntu 安装nvidia 驱动后无法进入桌面(循环进入登录界面 )
  9. NSCharacterSet 去除NSString中的空格
  10. 微信公众号根据URL取文章详情 API 返回值说明
  11. 电子科技大学《图论及其应用》复习总结--第一章 图的基本概念
  12. winform5、高清屏下字体模糊的解决方法
  13. unity 反编译 step1 disUnity
  14. 【笔记】ARM裸机程序开发_part3
  15. python预测你的小孩身高_儿童身高预测方法
  16. 2020阿里云服务器免费领取与互联教程
  17. 【038】翼辉携手太空链:拥抱商业航天发展
  18. Melanopic EDI(简称m-EDI) 计算软件
  19. 微型计算机更新换代标致,实拍标致408十周年版 新增全液晶仪表盘
  20. java实现mysql自动更新创建时间与更新时间的两种方式

热门文章

  1. 智能监控关键技术和落地重要环节
  2. DTS mysql_mysql之DTS的那些事
  3. 运营商大数据的绝对优势——降低获客成本,提高成交机率
  4. 如何看期货k线图交易?
  5. 完美世界3D格斗手游[格斗宝贝]今日公測
  6. ThinkAdmin任意文件读取漏洞(CVE-2020-25540)
  7. 华硕主板win11 AirPods pro 蓝牙耳机 蓝牙音响断连 播放断断续续
  8. Auto Layout iOS
  9. 31省工业互联网路线图公布
  10. 淘宝架构框架《上篇》