自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 ios8 push无缝隐藏navibar和statusbar

如下代码效果不错: - (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [self.navigationController setNavigationBarHidden:YES animated:YES]; } - (void)viewWillDisappear

2015-05-27 18:01:22 1399

转载 iOS不规则控件的点击事件

我们有时候会碰到这样的需求,比如我们某个菜单是圆形的,或者某个菜单是环形的,由于一些情况普通用户很少能感知到,可能导致我们对非矩形控件的事件处理都按照矩形的区域来处理了,虽然这样的实现也没有问题,但是如果有一些极端的不规则控件出现的时候,可能矩形的处理区域就无法满足需求,我们就需要一种更加精确的处理方式,来决定我们的事件到底分发给哪个subview。 差不多2年前的时候,国内很多TabBar

2015-05-23 14:41:30 827

转载 ios的hitTest方法以及不规则区域内触摸事件处理方法

在正常的使用场景中,我们处理了比较多的矩形区域内触摸事件,比如UIButton、UIControl。一般来说,这些控件的图形以及触摸区域都是矩形或者圆角矩形的。但是在一些特殊应用场景中我们有时不得不面对这样一种比较严苛的需求,比如要求程序只对某个圆形、五角形等非常规区域的点击事件进行处理,这就需要花点功夫了。本文以圆形为例子来介绍此类场景的处理方法。 先看下面一张图(附图1),我们的目标是实

2015-05-23 14:10:27 657

原创 关于NSNotification和NSTimer的观点

1.通知就没有用到线程,通知就在发送的调用栈上直接就调用了。 2.你在哪个线程postNotification: 就在哪个线程执行 3.跟在哪注册没关系 4.同步和异步从概念上只是设计模式,不要和线程和阻塞的概念弄混了 5.NSTimer,NSNotificationCenter都是异步 6.保证接收方的回调都在主线程里面执行啊 7.你可以想象下Notification的实现就是很简单

2015-05-20 16:33:06 377

原创 属性化字符串在uilabel上的使用

很多控件其实都支持属性化字符串的,比如uilabel。 NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc]initWithString:@"内容覆盖国内外突发新闻事件、体坛赛事等。"]; NSMutableParagraphStyle *mutParaSty = [[NSM

2015-05-19 15:20:44 627

原创 AutoLayout之tableview、textview

这里说的是在Storyboard中构建布局。在一个uiviewcontroller的view中拖进一个uiview和一个uitableview利用自动布局的时候,tableview可能会莫名其妙的在最上面出现空白。 原因是你的约束不合适,虽然说没有任何约束警告,但是如果你尝试另外一种约束方式,问题就奇妙地得到解决了。 这种约束方式就是把重心方法子视图之间的思想,也就是uiview和tablev

2015-05-19 14:30:42 747

原创 storyboard自定义视图控制器切换

引用了一本国外编程书上的代码: #import @interface CustomSegue : UIStoryboardSegue @end #import "CustomSegue.h" @implementation CustomSegue - (void)perform{ UIViewController *src = (UIViewController *)self.

2015-05-17 19:23:19 608

原创 一种观察对象释放的关联引用用法

关联引用的参数对象的释放取决于与它关联的那个对象的释放。 建立一个观察类: #import const char kWatcher; @interface Watcher : NSObject @end #import "Watcher.h" @implementation Watcher - (void)dealloc{ NSLog(@"The thing I was wat

2015-05-17 16:45:53 734

原创 分类添加属性之关联引用

分类是不能合成属性的,因为合成属性会生成对应的实例变量,而分类是不允许添加实例变量的(实例变量所在内存区域已初始化为不可更改,无法在动态运行时修改之)。 虽然不能增加实例变量,但是添加属性还是可以的,只不过需要自己在分类中实现get和set方法,同时标记属性为动态获取。 其中一种方法叫做关联引用,实现了用存取器来访问属性,当然实际上并没有实例变量,所以本质上只不过是增加了两个方法而已。 首先

2015-05-17 15:14:12 1148

原创 storyboard创建的:设置tabbar的item选中状态的颜色和图片

写一个继承自UITabBarController的类。添加如下代码: - (void)viewDidLoad { [super viewDidLoad]; self.tabBar.tintColor = [UIColor CMColor];//设置选中颜色 self.view.backgroundColor = [UIColor whiteColor];//防止pus

2015-05-13 16:58:10 2325

原创 彻底分析block中的循环引用

我做了一个被push到的controller,pop的时候,controller会释放,解析详见注释,欢迎批评指正! #import "AnimaViewController.h" @interface AnimaViewController () @property (nonatomic, strong) UIView *view1; @property (nonatomic, strong

2015-05-10 19:43:48 1935

转载 block需要注意的细节

一,前言 在前文《深入浅出Cocoa多线程编程之block与dispatch quene》中我介绍了 block 的一些基本语法以及如何和 GCD 结合的使用示例。block 是在 iOS 4 中引入的新特性,它和 C++ 11 中的 lamba 表达式概念相似,有时候也被称为闭包。经过一段时间的使用,我发现要用对用好 block 还是有不少需要注意的地方,今天就来八一八这些值得注意的事

2015-05-10 18:46:08 376

原创 block并行编程与线程同步

block可用于并行编程,线程同步多用信号量来实现,保证执行完一个block再执行下一个block,当所有block都执行完毕后,再利用group,通知执行后面的代码,使用wait(阻塞线程),或notify(不阻塞线程)等待执行结束后再继续。 #import #import "AppDelegate.h" static volatile BOOL flag = NO; //一个定义为v

2015-05-10 17:02:49 620

原创 绘制字符串与图像

借鉴于斯坦福课程 .h #import @interface DrawingView : UIView @property (nonatomic) NSInteger rank; @property (nonatomic, strong) NSString *suit; @property (nonatomic) BOOL faceUp; - (void)pinch:(UIPinchG

2015-05-09 20:04:04 405

原创 代码研究

总结一下这些方法,比较杂,长期更新,不断进步。- (void)loadView{ [super loadView];//此处必须调用父类。用IB初始化时候不用重写这个方法,不用ib时,此方法不要调用父类。 NSLog(@"loadView"); } 如果父类调用的自己的方法,在其子类中实现了,那么父类会直接调用子类方法,无论子类是否调用自己的方法。至于是否调用父类的实现,取决

2015-05-09 19:59:58 320

原创 NSOperation的继承实现

/*  1.线程同步:原子操作,条件锁,递归锁,@synchronized。NSCondition:同步执行的顺序。  2.线程间通信:  在主线程做事:-performSelectorOnMainThread  在子线程做事:-performSelectorInBackground  在指定线程做事:-performSelector: onThread: withObject: wai

2015-05-09 19:30:59 511

原创 NSURLSession下载图片的简单例子

NSURLSession从iOS7开始生效,用于网络编程。 例如下载一个图片来显示。 NSURL *url = [NSURL URLWithString:@"http://upload.ct.youth.cn/2014/1219/1418933895342.jpg"]; NSURLRequest *reque = [NSURLRequest requestWithURL:url];

2015-05-09 19:08:39 1913 1

原创 UIDynamicBehavior动力学动画效果

引用斯坦福视频中的例子 .h #import @interface MyDynamicBehavior : UIDynamicBehavior - (void)addItem:(id)item; - (void)removeItem:(id)item; @end .m #import "MyDynamicBehavior.h" @interface MyDynamicBehavior

2015-05-09 19:01:25 427

原创 多选一按钮的一个解决方法

导航栏许多按钮,点一个其他按钮状态跟着变化,被点按钮为选中状态。 说一下我的方法,觉得实现得一般,期待大家提出一个更好的方案。 - (IBAction)titleButtonTap:(UIButton *)sender { UIButton *btn = self.btnArray.firstObject; if (btn.tag != sender.tag) {

2015-05-06 16:07:53 1889

原创 混合两个有序int数组到另一个有序数组并去重

题目:两个有序数组a和b,混合之,放在另一个数组c中,使得c也是有序数组(升序),去除重复的项。 虽然觉得不是很简便,但代码如下: int merge_array (int *a , int *b, int *c, int n1, int n2) { if (n1 < 0 || n2 < 0) { return -1; } int i = 0;

2015-05-06 01:05:01 983

转载 iPhone消息推送机制实现与探讨

最近两天在研究ios的消息推送机制。研究这个东西,还是充满兴趣的。 Push的原理: Push 的工作机制可以简单的概括为下图 图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider。 APNS 是Apple Push Notification Service(Apple Push服务器)的缩写,是苹果的服务器。

2015-05-05 01:10:18 366

转载 IOS多线程编程系类

目录: IOS多线程编程之NSThread的使用 IOS多线程编程之NSOperation和NSOperationQueue的使用 IOS多线程编程之Grand Central Dispatch(GCD)介绍和使用 IOS多线程编程之NSThread的使用 1、简介: 1.1 IOS有三种多线程编程的技术,分别是: 1.、NSThread 2、Coc

2015-05-05 01:06:36 382

转载 iOS应用启动速度

http://ke.indiebros.com/2012/08/20/ios-app-launch-time-optimization/ 很多app的开发者都不重视app的启动速度,这对于碎片化使用情景的用户来说,简直是灾难。 iOS应用的启动速度 应用启动时,会播放一个放大的动画。iPhone上是400ms,iPad上是500ms。最理想的启动速度是,在播放完动画后,用户就可以

2015-05-04 23:50:40 433

转载 (译)KVO的内部实现

KVO是实现Cocoa Bindings的基础,它提供了一种方法,当某个属性改变时,相应的objects会被通知到。在其他语言中,这种观察者模式通常需要单独实现,而在Objective-C中,通常无须增加额外代码即可使用。   概览 这是怎么实现的呢?其实这都是通过Objective-C强大的运行时(runtime)实现的。当你第一次观察某个object时,runtime会创建一

2015-05-04 23:42:01 340

原创 The Podfile of CocoaPods error

/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.37.0/lib/cocoapods/user_interface/error_report.rb:13:in `report': incompatible character encodings: UTF-8 and ASCII-8BIT (Encoding::CompatibilityError) from

2015-05-04 16:48:24 445

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除