1,以屏幕原点开始布局  (默认从导航栏原点布局)
self.extendedLayoutIncludesOpaqueBars = YES;
 
2,向button发送点击事件
[self.playButton sendActionsForControlEvents:UIControlEventTouchUpInside];
 
为什么这么做?
button被点击做了两件事,一个是调用方法,一个是button状态发生变化
如果只调用方法会无法同步状态变化
 
 3,判断触摸点是否在View中

不能调用用pointInside:withEvent 
UIEvent是历史遗留参数,当前不需要传递,该方法仅仅在重写hitTest时使用
正确方法为:CGRectContainsPoint
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;{
    BOOL result = NO;
    CGPoint touchPoint = [touch locationInView:self.centerbgView];
    if (!CGRectContainsPoint(self.centerbgView.bounds, touchPoint)) result = YES;
    return result;
}

4,调用头文件中声明的方法,即使没有实现也不会报错or警告。
 
5,查看系统控件的私有属性方法
给该控件写分类,然后在分类添加发方法中添加断点。当走到断点后,控制台就能看到系统类的私有属性了。
 
6,通过颜色创建image
 

+ (UIImage*)imageWithColor:(UIColor*)color

{

CGRect rect = CGRectMake(0.0f, 0.0f, 8.0f, 8.0f);

UIGraphicsBeginImageContext(rect.size);

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSetFillColorWithColor(context, [color CGColor]);

CGContextFillRect(context, rect);

UIImage*theImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

return theImage;

}

 
 7, navigationBar 设置背景图样式

forBarMetrics有点类似于按钮的for state状态,即什么状态下显示

//UIBarMetricsDefault-竖屏横屏都有,横屏导航条变宽,则自动repeat图片

//UIBarMetricsCompact-竖屏没有,横屏有,相当于之前老iOS版本里地UIBarMetricsLandscapePhone

理论上,设置prompt属性后另外两种设置起效。但是实际测试发现即使设置了prompt属性,prompt的参数也无效,前两个选项完全有效。也就是说,最新的版本中只有前两个有效

self.navigationItem.prompt = @"Navigation prompts appear at the top.";

//UIBarMetricsDefaultPrompt = 101, 竖屏, 并且带prompt文字的情况下显示图片

 //UIBarMetricsCompactPrompt, 横屏, 并且带prompt文字的情况下显示图片 
 
 8,NavigationController有两个属性,childViewControllers继承UIViewController
viewControllers:The view controllers currently on the navigation stack.
childViewControllers:An array of view controllers that are children of the current view controller.
两个属性中的数据一致
 
9,Property attributes 'nonnull' and 'weak' are mutually exclusive
 

The whole point of weak is that the property becomes nil when the object is deallocated. The whole point of nonnull is that the property can never be nil. That's why you can't apply both.

Either make your property strong nonnull or just weak

10, 将16进制字符串转换成无符号长整型字符串

valueString = [NSString stringWithFormat:@"%ld",strtoul([valueString UTF8String],0,16)];

重要方法:strtoul()  第三个参数表示要转换字符串的机制,base 必须介于 2 和 36(包含)之间,或者是特殊值 0

11,解决iOS11tableView:heightForHeaderInSection:方法不执行的问题

需要设置sectionHeaderHeight 

https://www.jianshu.com/p/abcab8b75220

    

iOS开发常用技能点(持续更新中。。。)的更多相关文章

  1. Linux软件开发常用的软件包(持续更新中)

    下面是Linux开发常用的软件包: 软件包的名称 作用描述 安装方式 build-essential   sudo apt-get install build-essential policycore ...

  2. android开发常用组件【持续更新中。。。】

    UI相关 图片 Android-Universal-Image-Loader:com.nostra13.universalimageloader:异步加载.缓存.显示图片 ImageLoader:co ...

  3. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  4. 【github&&git】4、git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  5. H5移动端IOS/Android兼容性总结,持续更新中…

    H5移动端IOS/Android兼容性总结,持续更新中… 1. IOS不识别日期 new Date("2018-07-01 08:00:00")在Android下正常显示可以直接进 ...

  6. iOS开发系列文章(持续更新……)

    iOS开发系列的文章,内容循序渐进,包含C语言.ObjC.iOS开发以及日后要写的游戏开发和Swift编程几部分内容.文章会持续更新,希望大家多多关注,如果文章对你有帮助请点赞支持,多谢! 为了方便大 ...

  7. php 常用函数集合(持续更新中...)

    php 常用函数集合 在php的开发中,巧妙的运用php自带的一些函数,会起到事半功倍的效果,在此,主要记录一些常用的函数 1.time(),microtime()函数 time():获取当前时间戳 ...

  8. angularjs开发常见问题-1(持续更新中...)

    angularJs中学习中- 1.刷新当前页面数据:$state.reload service.create(data).then(function (newItem) { flash.success ...

  9. Hive 常用语句(持续更新中)

    1)按包含关键字在指定库中查找表名:show tables in dw '*_fab_*';   2)查看和删除自己hdfs系统所用的空间和文件(与shell命令合用):hive命令行下: --查看仓 ...

随机推荐

  1. Java中的小数运算与精度损失

    float.double类型的问题 我们都知道,计算机是使用二进制存储数据的.而平常生活中,大多数情况下我们都是使用的十进制,因此计算机显示给我们看的内容大多数也是十进制的,这就使得很多时候数据需要在 ...

  2. Spring5参考指南:基于Schema的AOP

    文章目录 基于Schema的AOP 定义Aspect 定义Pointcut 定义Advice advice参数 Advisors 基于Schema的AOP 上篇文章我们讲到了使用注解的形式来使用Spr ...

  3. js 运动函数篇 (一) (匀速运动、缓冲运动、多物体运动、多物体不同值运动、多物体多值运动)层层深入

    前言:         本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽.         本篇文章为您分析一下原生JS写 匀速运动.缓冲运动.多物体运 ...

  4. 也许你对 Fetch 了解得不是那么多(下)

    上文链接:也许你对 Fetch 了解得不是那么多(上) 编者按:除创宇前端与作者博客外,本文还在语雀发布. 编者还要按:作者也在掘金哦,欢迎关注:@GoDotDotDot Fetch 与 XHR 比较 ...

  5. Netty(二):数据在ChannelPipeline中的流经

    本文目的:测试数据在ChannelPipeline中的流经顺序及状态. 先看本文的测试代码: AdditionalInBoundHandler:入站处理器,不做任何处理,只是在响应读事件时打印用来观察 ...

  6. 蚂蚁金服合作的RISE实验室到底有多牛?

    近日,蚂蚁金服与美国加州伯克利大学近期新成立的RISE实验室达成合作意向.RISE实验室的前身是著名伯克利AMP实验室,主导研发了当今大数据计算领域最前沿的开源系统:Apache Spark.Apac ...

  7. The Preliminary Contest for ICPC Asia Xuzhou 2019 徐州网络赛 D Carneginon

    Carneginon was a chic bard. But when he was young, he was frivolous and had joined many gangs. Recen ...

  8. CF1336C Kaavi and Magic Spell

    CF1336C Kaavi and Magic Spell 区间dp 题意 给一个长度为 \(n\) 的字符串 \(S\) 和一个长度为 \(m\) 的字符串\(T\) ,\(1\le m\le n\ ...

  9. Thinkphp 缓存RCE

     5.0.0<=ThinkPHP5<=5.0.10 .   漏洞利用条件: 1.基于tp5开发的代码中使用了Cache::set 进行缓存 2.在利用版本范围内 3.runtime目录可以 ...

  10. I - Union 2019ccpc女生赛

    I - Union 这是2019女生赛最难的一个题目,但是现在去写,我觉得没有想象之中的那么难. 把这个题目分成几个部分来考虑. 假设给你k个数,让你分成三个集合,满足这四个条件,且不需要考虑时间和空 ...