![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Objective-C
特例独行的猿
世界那么大,我想去看看。
技术那么多,我想多学学。
展开
-
UIView在gdb或lldb下查看所有子view及层级
感觉在调试的时候很实用,就记下来分享下,以前尽然不知道,还要不停的在控制台打subviews。UIView的方法recursiveDescription,在控制台断点时gdb或者lldb下,打[view recursiveDescription]贴一下展示效果:; layer = > | > | > | | > | | | >转载 2015-01-05 13:10:15 · 926 阅读 · 0 评论 -
iOS Visual format language(VFL)
关于VFL,网络上的文档也是非常多。之前对VFL没有什么太大的了解,一直用Frame和autoresizingMask。直到使用VFL,已经深陷其中无法自拔。说起VFL的语法,我记得第一次看到VFL我直接就放弃了。直到Apple出了iPhone6 iPhone6plus,迫于无奈,开始转向VFL的研究。首先推荐一个网站:http://constraints.ic原创 2015-05-25 14:42:05 · 734 阅读 · 0 评论 -
iOS中CG绘图笔记
之前有转载过一篇绘图的笔记,不过毕竟不是自己写的,看过一遍后印象不太深,自己开一篇博客,记录自己使用过的API。初始化上下文CGContextRef context = UIGraphicsGetCurrentContext();设置线宽CGContextSetLineWidth(context, 1);设置线的颜色CGContextSetS原创 2015-06-09 19:59:47 · 572 阅读 · 0 评论 -
UINavigationController应用之—-从无导航条push到有导航条
前言:当你想在一个没有导航条的页面push到一个有导航条的页面的时候,你是否试过去隐藏前一个页面的导航条,然后push后再显示?然后看起来很有闪烁感。这里就教你如何用系统的api去完成这件事.一、初始化一个带Navigation的控制器 此处不多讲,我用个故事板简单的建立一个,如下图:从此图可以看出,一个带导航条的控制器,里面有一个push的按钮,转载 2015-06-06 15:21:37 · 5627 阅读 · 0 评论 -
Left Menu抽屉效果与ScrollView共存时的手势冲突
当前有个小项目,需要做成首页ScrollView嵌套TableView。然后有Left与Right的抽屉效果。之前也有做过类似的,后来做完就忘了。记性实在太差了。真是应了那句话:好记性不如烂博客。因为我首页是一个ScrollView所以当我contentOffset是0.0的时候,无法直接滑动出抽屉效果,用户体验感非常差。思考了一下还是手势的问题。于是将ScrollVi原创 2015-06-06 15:13:59 · 1182 阅读 · 2 评论 -
iOS 获取UIWebView的高度
使用KVO监听scrollView.contentSize属性在KVO回调的方法中处理_webView.scrollView.contentSize.height 获取到目前webView的高度并且判断获取到的高度是否存在!isnan(height)如果高度不存在[[_webView stringByEvaluatingJavaScriptFro原创 2015-06-03 14:00:30 · 514 阅读 · 0 评论 -
让左侧栏中的tableView点击以push方式弹出,并且拥有手势返回
目前很多App中都会有左侧栏抽屉效果。iPhone的屏幕也大了许多,很多时候,手势操作的体验远远大于去点击一个按钮。但是当我们显示left Menu的效果的时候,去push,只能显示left的这个宽度,如果用centerViewController 去push,然后在关闭left 又显得很不自然。我自己研究了一下。给self.window.rootViewController这个C原创 2015-06-22 19:48:53 · 596 阅读 · 0 评论 -
iOS中的排序笔记
NSComparatorNSComparator有4种枚举类型NSOrderedDescending 降序,但是用他可以实现升序或者降序都没问题。NSOrderedAscending 升序,但是目前没有使用出任何效果。。NSOrderedSame 相同,等价于不改变吧?NSSortDescriptor这个排序可以直接对对象进行排序。用起来也很方便。原创 2015-05-29 09:50:40 · 568 阅读 · 0 评论 -
继续上一篇文章,自动释放池的问题。
上一篇文章知道了在MRC情况下(ARC情况下不加没有任何问题),遍历较多数据,需要加入NSAutorelease来保证内存不溢出。自动释放池有2个方法,一个是release,一个是drain。自动释放池不能被retain,也就是说,一旦release,他的引用计数就是0.就会被释放。然而其实release是不做任何操作的,在GCC环境下。drain才是销毁对象包括自原创 2015-05-28 13:51:13 · 330 阅读 · 0 评论 -
iOS 关于内存自动释放池的一个问题(MRC)
之前遇上这么一个题目for (int i = 0 ; i {NSString *string =@"Abc"; string = [string lowercaseString]; string = [string stringByAppendingString:@"xyz"]; NSLog(@"%@", string);}原创 2015-05-28 13:15:28 · 1352 阅读 · 0 评论 -
UImage
UIImage是UIKit中一个存放图片的容器。通过查看UIImage可以看到UIimage并不是继承UIView,而是继承自NSObject。我们经常通过UIImage来展示图片,不论是网络上的还是本地的。使用频繁的一个UIImage,我们除了使用他来承载一张图片的数据外,几乎很少用到它的其他属性。其他比较频繁的大概是它的size属性,如果已经承载原创 2015-05-28 10:27:45 · 2054 阅读 · 0 评论 -
OpenGL ES 创建流程
第一步开始前的配置创建UIView,修改Layer的返回类型,OpenGL只支持在CAEAGLLyer上绘制设置Layer,获取Layer,Layer默认是透明的,我们必须将他设置为不透明设置描绘属性,在这里设置不维持渲染内容以及内容格式为RGBA8至此,初始化配置完成第二步设置上下文设置OpenGL渲染的API版本kEA原创 2015-05-15 16:33:06 · 686 阅读 · 0 评论 -
instancetype替换id有什么好处
Clang adds a keyword instancetype that, as far as I can see, replaces id as a return type in -alloc and init.Is there a benefit to using instancetype instead of id?There definitely is a bene转载 2015-01-05 13:06:52 · 380 阅读 · 0 评论 -
继承自NSObject的不常用又很有用的函数
初始化阶段 —— load 和 initializeload函数原型:+(void)load 当类被引用进程序的时候会执行这个函数。在一个程序开始运行之前(在main函数开始执行之前),在库开始被程序加载,load函数就会开始被执行。我们开发的程序都可以认为是一个库,但是库又不会独立存在(我们的程序还会引用其他库,也可能被其他转载 2014-11-16 16:32:27 · 376 阅读 · 0 评论 -
MRC小测
测试控件:uilabel,外加一个点击事件的btn前言:The Application Kit creates an autorelease pool on the main thread at the beginning of every cycle of the event loop, and drains it at the end, thereby releasing any原创 2014-11-05 20:58:27 · 588 阅读 · 0 评论 -
iOS 图形编程总结
iOS实现图形编程可以使用三种API(UIKIT、CoreGraphics、OpenGL ES及GLKit)。 这 些api包含的绘制操作都在一个图形环境中进行绘制。一个图形环境包含绘制参数和所有的绘制需要的设备特定信息,包括屏幕图形环境、offscreen 位图环境和PDF图形环境,用来在屏幕表面、一个位图或一个pdf文件中进行图形和图像绘制。在屏幕图形环境中进行的绘制限定于在一个U转载 2014-11-05 21:27:49 · 424 阅读 · 0 评论 -
让TableViewSection在Plan的模式下不悬浮
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGFloat sectionHeaderHeight =50; if (scrollView.contentOffset.y contentOffset.y > 0) { scrollView.contentInset =UIEdge原创 2015-06-12 21:30:11 · 1917 阅读 · 0 评论