自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

做一个奋斗不止的小公举!

只要你不放弃,等待你的将会是一片光明。

  • 博客(123)
  • 收藏
  • 关注

原创 mac 怎样播放mkv格式的视频,一个很巧妙的方式!

平时喜欢在电影天堂下载一些电影看,然后发现有一些电影是mkv格式的,然后什么爱奇艺、暴风影音之类的播放器都播放不了,各种百度结果是让我下载什么MXPlayer,记不住了,反正各种,但是各种用不了,各种不好使,让我一度很苦恼,mac到底怎么样才能看mkv格式的电影啊[抓狂]!!!!!!!!吐槽完毕,进入正文其实非常简单!!!!!!!!! 我们不都是用迅雷下载的嘛,下载过程中会有一个边下边播!点一下!

2016-11-07 15:33:37 37438

原创 mac下安装OCLint、xctool、及配置环境变量

首先配置环境变量,要先创建一个这个文件 touch .bash_profile然后vi进行编辑输入需要配置的内容更新配置的环境变量 source .bash_profile

2016-07-21 08:59:19 1282

原创 Mantle迅速上手

首先,不要害怕,他是帮助我们简化问题的(比如自动降NSNull转成nil,减少崩溃的可能),所以并不会难用。 我们通常用的就是MTLJSONAdapter,MTLModel tip 1:继承MTLModel,遵守MTLJSONSerializing协议 如果你的属性名和传过来的值不一样的话,那么你可以实现这个方法来写明一下映射关系+ (NSDictionary *)JSONKeyPathsBy

2016-05-31 19:37:17 474

转载 Masonry介绍与使用实践和各种使用心得,持续更新~

前言1MagicNumber -> autoresizingMask -> autolayout以上是纯手写代码所经历的关于页面布局的三个时期在iphone1-iphone3gs时代 window的size固定为(320,480) 我们只需要简单计算一下相对位置就好了在iphone4-iphon

2016-05-18 15:41:38 1047

原创 Analyze静态分析

今天来学习一下静态分析,说实话,真的很少用,不过静态分析确实有他的优点的。它的主要功能是:1、逻辑错误:访问空指针或未初始化的变量等;2、内存管理错误:如内存泄漏等;3、声明错误:从未使用过的变量;4、Api调用错误:未包含使用的库和框架。除了内存泄漏,其他三个在编译的时候都会产生警告,体现不出来静态分析的优势。那么,当你开启ARC模式的时候,他还有用吗,当然有用,我们都知道还有CF框架呢,这个也是

2016-05-14 19:42:55 493

原创 利用贝塞尔曲线做圆角

UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(120, 10, 80, 80)];view2.backgroundColor = [UIColor redColor];[self.view addSubview:view2];UIBezierPath *maskPath = [UIBezierPath bezierPathWit

2016-05-14 18:38:28 2150

转载 全面理解iOS开发中的Scroll View

可能你很难相信,UIScrollView和一个标准的UIView差异并不大,scroll view确实会多一些方法,但这些方法只是UIView一些属性的表面而已。因此,要想弄懂UIScrollView是怎么工作之前,你需要了解 UIView,特别是视图渲染过程的两步。光栅化和组合渲染过程的第一部分是众所周知的光栅化,光栅化简单的说就是产生一组绘图指令并且生成一张图片。比如绘制一个圆角矩形、带图片、标

2016-05-14 18:06:20 369

原创 swift之CGRect、CGSize和CGPoint

不要再这样写了let rect = CGRectMake(0, 0, 100, 100)let point = CGPointMake(0, 0)let size = CGSizeMake(100, 100)要这样写let rect = CGRect(x: 0, y: 0, width: 100, height: 100)let size = CGSize(width: 100, height

2016-05-14 17:21:03 2726

原创 C primer plus 学习之存储类、链接、内存管理

这一章,我们学习一下存储类、链接和内存管理三个概念,这对于C、OC的编码都有极大的好处,而且面试还常考,所以看一下很有必要,我之理做一下总结以便日后复习。在说C语言中的存储类之前,先介绍一些术语。对于一个变量可以有两种形容词:存储时期、作用域和链接存储时期:在内存中保留的时间 作用域和链接:表明程序的哪些部分可以通过变量名访问该变量存储时期 静态存储时期:程序运行期间一直存在(文件作用域)

2016-05-14 15:44:37 335

原创 毛玻璃效果

iOS8之后苹果提供了制作毛玻璃效果的API就是这个UIVisualEffectView,用这个initWithEffect:去初始化,然后呢,他有两种效果继承自UIVisualEffect。这个父类不用管,什么也不做,主要看他的两个子类UIBlurEffect和UIVibrancyEffect。 UIBlurEffect : 这个是影响毛玻璃后面视图的 效果图: UIVibrancyEf

2016-05-06 13:06:44 1410

原创 UIButton

设置圆角正常在创建button的时候设置button类型为UIButtonTypeRoundedRect就可以了 但是,在我们设置button有背景颜色和背景图片时,这个就不好使了,可以加上这两句[btn.layer setMasksToBounds:YES]; [btn.layer setCornerRadius:20.0];

2016-05-04 15:07:46 342

原创 用xib做scrollView的键盘自适应以及自动布局

首先,拖进来一个scrollView然后对这个scrollView设置上下左右的约束接着,拖进来一个UIView设置这个view的上下左右约束然后要设置这个view的滚动方向,我是让他垂直滚动,所以选中下面这个然后很关键的一步就是,因为你设置的是上下滚动,你就要再设置一下他的高度,他才知道他在什么范围内滚动。酱紫就大功告成了下面我们说一下关于键盘的自适应这个键盘自适应一般都是指监听文本框的输入然后不

2016-05-03 14:25:56 1129 1

原创 UIResponder

UIResponder有一个指针nextResponder,可通过该指针组成一个响应对象链。当UIView对象属于某个UIViewController对象时,nextResponder指针就会指向包含该视图的UIViewController对象。当UIView对象不属于 任何UIViewController对象时,其nextResponder指针就会指向该视图的父视图,UIViewControlle

2016-04-28 12:19:52 368

原创 NSDictionary

NSDictionary和NSMutableDictionary的键必须遵守NSCopying协议-键必须可以复制,所以有些时候,我们要存储的键本身是不可复制的时候(比如UITouch),可以将其用NSValue包一下。

2016-04-28 12:08:09 247

原创 深拷贝与浅拷贝

今天经高人指点,对这个深拷贝和浅拷贝有了新的认知,原来以前理解的都是错的!忘掉以前的一切,让我们重新认识一下深拷贝和浅拷贝。 官方文档在此为证! There are two kinds of object copying: shallow copies and deep copies. The normal copy is a shallow copy that produces a ne

2016-04-26 21:28:18 319

原创 UITableView

footerView今天遇到一个奇怪的现象,就是我自定义了一个UIView用作footerView,然后往里面放了一个button,然后设置self.tableView.tableFooterView = footer;但是却怎么都显示不出来。后来我就利用代理方法直接返回一个button就好了。其中原因还不是很清楚。- (UIView *)tableView:(UITableView *)table

2016-04-25 12:25:10 243

原创 UINavigationController

设置统一的颜色有的时候我们想统一设置导航栏字体的一些属性,比如字体颜色,试过一些方法都不好使,记下来好使的方法。NSMutableDictionary *textAttrs = [NSMutableDictionary dictionary];textAttrs[NSForegroundColorAttributeName] = [UIColor whiteColor];self.navigati

2016-04-25 11:52:17 249

原创 UITabbar技巧收集

修改tabbar的高度继承UITabbarController,然后重写下面的方法- (void)viewWillLayoutSubviews { self.tabBar.height = 60; self.tabBar.y = self.view.height - 60;}

2016-04-22 15:59:05 290

原创 指针

观察上面的程序和输出,怎么去理解呢,就是change1它是在栈区又开了一个临时变量来接受传进来的参数,也就是a,所以change1中的指针和传进来的参数的指针不是一个,由此证明它们不是一个变量。所以你在change1当中做的改变随着函数结束就消失了~并没有造成什么影响。但是对于change2,他传入的是一个参数的指针,是确实把指针指向的内容给修改了,所以函数结束后,a的值被改变了。这个要好好理解一下

2016-04-20 10:35:46 287

原创 一点一点积累bug。。。

今日初识Mantle,崩掉了,不知所措。仔细一看原来是JSONKeyPathsByPropertyKey这个函数里面写漏掉了一个参数。。。解决iOS模拟器上面只能用模拟器上的键盘,不能用笔记本的键盘的问题 勾选上这个就行开发中遇到这种问题EXC_BAD_ACCESS 很有可能就是死循环了,傻乎乎地找半天,这个是改过之后的,之前写成这样

2016-04-19 21:21:58 297

原创 Expression is not assignable

不知道有没有跟我遇到同样的错误,今天研究一下为什么。 self.view.frame.size.width = 20; 当我们这样去写上面的语句的时候会报错Expression is not assignable。为什么会这样,起始还是对OC理解的不够透彻,分析一下他的语句, self.view是利用点语法调用view的getter 方法,然后view调用frame的getter方法,也就是这

2016-04-19 21:17:47 13717

原创 xib

如果控件不是从xib、storyboard中创建会调用initWithFrame方法如果是从xib、storyboard中加载的就会调用initWithCoder和awakeWithNib:方法。

2016-04-14 20:38:11 396 1

原创 UITextView

UITextView继承自UIScrollView有时候我们有一个界面是带有导航栏的,然后我们家上了这个UITextView子视图,并让其占据整个屏幕,但是会发现一点击输入时,光标正好显示在导航栏的下面,怎么会这样呢,这个时候他的值不应该是0吗,应该被导航栏挡住了啊。其实是因为她的父类特有的功能,那个EdgeInset,它的内容的EdgeInset被悄悄改变了(由于有导航栏并且automatical

2016-04-14 20:19:12 401

原创 图文混排效果

如果要做图文混排可以利用NSMutableAttributedStringNSTextAttachment *attch = [[NSTextAttachment alloc] init];attch.image = [UIImage imageNamed:@""];NSAttributedString *mstr = [NSAttributedString attributedStringWit

2016-04-11 17:53:10 599

原创 GCD

大中枢派发~~~由C语言编写的,非常强大它自动利用多核自动管理线程生命周期(就是关于线程的创建和调度还有销毁不需要你管)理解好两个概念任务:具体的操作队列:存放任务的队列GCD使用步骤 - 确定任务 - 将任务放到队列中执行任务有两种方式 - 同步:sync -不开新线程,在当前线程中执行 - 异步:async -开启新线程(在主队列中无法开启新线程)队列有两种 - 串行:on

2016-04-10 21:40:55 290

原创 UIViewContentMode

typedef NS_ENUM(NSInteger, UIViewContentMode) { UIViewContentModeScaleToFill, UIViewContentModeScaleAspectFit, // contents scaled to fit with fixed aspect. remainder is transparent UIV

2016-04-10 14:18:30 638

原创 值得注意的小细节

发现@”“和nil不是一个含义

2016-04-09 21:15:50 373

原创 UIImage

imageWithContentOfFile: 这个方法不会有缓存,适合加载大图片,或者使用频率低的图片imageWithNamed: 这个方法会有缓存,适合加载小图片,使用频率高的

2016-04-09 17:36:59 234

原创 事件传递

发生事件是由窗口通知根控制器,然后根控制器再传递给其子控制器。所以要注意,如果由一个控制器控制另一个控制器时,最好让他们形成父子关系,其view也要有父子关系。

2016-04-09 14:46:08 234

原创 UIScrollView的contentSize、contentOffset、contentInset

都知道UIScrollView是可以滚动的,但是前提是你得告诉它内容大小,他才可以在相应大小内滚动,contentSize就是设置内容大小的,那么contentOffset、contentInset是干什么的。 - contentOffset:scrollview当前显示区域顶点相对于frame顶点的偏移量 - contentInset:scrollview中contentView.frame.

2016-04-09 14:20:33 338

原创 UITableViewCell

自定义Cell自定义cell中的控件要加到cell的contentView中。新建一个子类继承UITableViewCell在initWithStyle:方法中进行子控件的初始化,将一些只进行一次的操作放在这里尽可能将所有可能出现的控件都先放进来提供数据模型和frame注意:如果自定义cell较复杂不建议用xib,xib不够灵活,比如:你只能将控件成为UIView的子视图,如果你想让一个

2016-04-09 14:14:48 262

原创 UIButton

sizeToFit 这个方法是自动根据button中的内容来设置尺寸的,但是要注意,这个方法在图片在左文字在右的状态下才会计算的正确,不然就会跟你设想的不一样。

2016-04-08 20:02:38 244

原创 线程通信

线程通信一般表现在一个线程传递数据给另一个线程一个线程执行完又回到某个线程不要在子线程中更新UI界面,因为主线程负责更新UI界面,并且UI控件都是非线程安全的,如果子线程也去更新,就容易导致一些问题。performSelector: onThread: withObject: waitUntilDone: 在这里waitUntilDone代表是否执行完当前线程后再往下执行。

2016-04-08 19:58:43 253

原创 动画

transform当一个动画是表达从一个地方到另一个地方然后再回到原处,那么用transform比较好,将 transform设置为CGAffineTransformIdentity,就可以回到初值。完成动画

2016-04-08 09:41:07 176

原创 一点一点积累的快捷键

在xcode7中收起一段代码不能像以前那样点一下左边界就可以了。可以用快捷键option + command + 左/右 (收起/打开)

2016-04-06 13:57:21 268

原创 开发中犯的低级错误。。。

忘记设置代理用webView加载一个界面,像观察一下他的几个代理方法,所以遵守了UIWebViewDelegate协议。然后开始实现那几个方法,然后运行,半天看不到打印,宝宝蒙圈了,这是肿么了。于是各种百度,然后问了群里的大神们。结果告诉我我忘记设置他的代理了。。。我感觉自己以后就是被笨死的,嗯。!!!所以千万万要记住,你给我记住,要设置他的delegate,不然谁知道谁去实现那些方法啊!!!文件分

2016-04-05 19:51:45 991

原创 面试注意事项

在技术面试考验编码能力时,需考虑测试一些特殊情况。 比如边界条件,空指针,空串,以及错误处理。

2016-04-05 15:42:54 221

原创 UIWebView-iOS9设置

今天用WebView加载一个界面出现了这个错误NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802) 在info.plist里面添加这样一个属性就可以了App Transport Security Settings Allow Arbitrary Loads

2016-03-28 21:03:23 710

原创 OAuth授权

要获取微博的真实数据,所以要通过这个OAuth授权,哈哈,涨技能。先进入open.weibo.com ,然后登陆,然后我的应用,然后介入应用,然后填入相应信息。最后获取两个重要的东西App Key 和 App Secret然后三步走1.获取未授权的Request Token 2.获取用户授权的Request Token ,即用户进行输入用户名和密码,然后进行授权,授权后会返回一个授权过的Reque

2016-03-28 20:39:24 232

原创 KVC

KVC Key-Value-CodingsetValue:forKey: setValue:forKeyPath:valueForKey: valueForKeyPath:是个比较有用的东西,大家都这么说,嗯,那我慢慢体会。听说用它可以设置和访问私有的成员变量,嗯,就是说只要你定义了一个变量就逃不过他的火眼金睛。除非你在.m里面定义的全局变量。它可以修改一些系统设为readonly的属性。还有

2016-03-27 20:45:15 264

空空如也

空空如也

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

TA关注的人

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