
iOS开发学习
布莱克猫
学习之路,永不止步
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
自定义UIButton一般方法
自定义UIButton的话需要重写三个方法: -(CGRect)titleRectForContentRect:(CGRect)contentRect; 设置按钮标题的frame -(CGRect)imageRectForContentRect:(CGRect)contentRect; 设置图片标题的frame -(instancetype)initWithFrame:(CGRect)f原创 2016-03-18 09:35:09 · 306 阅读 · 0 评论 -
iOS 屏幕适配
一、屏幕适配发展历史 1、直接通过frame设置 2、通过Autoresizing设置控件和父控件的相对关系。运行时根据设置的规则计算出frame 3、autolayout:设置某个控件与任意其他控件的相对关系 4、size class: 针对不同的屏幕设置不同的控件位置越苏规则。 ps:1:autoresizing和autolayout互斥。 2:使原创 2016-07-17 23:33:06 · 436 阅读 · 0 评论 -
自定义一个UITableViewHeaderFooterView、UITableViewCell需要注意的一些方法。
(id) initWithXXX:初始化这个View,UITableViewHeaderFooterView的时候并没有在其中设置frame和bounds;PS:注意重写我们通常在其中添加需要的UIVIew。需要在layoutSubViews中设置。 (void) setModel:设置数据模型,在设置数据模型的时候同事设置UI子控件的frame。 (void) layoutSubVie原创 2016-05-21 13:52:11 · 1795 阅读 · 0 评论 -
xib文件使用
xib布局文件在安装到手机后会被转成nib文件。因此记住nib就是xib。 获取一个xib文件 //使用NSBundle的loadNibName方法获取,传入要获取的xib的文件名(不用后缀)。 NSBundle *bundle = [NSBundle mainBundle]; NSArray *objs = [bundle loadNibNamed:@"xib文件名" o原创 2016-04-24 17:59:18 · 422 阅读 · 0 评论 -
Xcode 插件管理器Alcatraz的安装和使用
Alcatraz是Xcode的一个插件管理器,通过Alcatraz可以查看和卸载Xcode上已安装的插件,并且通过Alcatraz也可以搜索并按安装许多Xcode的插件。 安装Alcatraz 使用命令行安装: curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh原创 2016-04-23 09:31:48 · 1017 阅读 · 0 评论 -
字典转模型
在使用许多数据的时候一般用模型来存储数据的类。 开发时当我们从文件中取出数据到字典后,应该将数据从字典取出装到模型中,将面向字段开发转为面向模型开发。 模型对象的参数选择: copy:NSString Strong:一般对象 weak:UI控件 assign:基本数据类型。 PS :注意模型方法的规范。 比如 需要一个需要一个initWithXXX原创 2016-04-23 22:18:43 · 871 阅读 · 0 评论 -
iOS通知模式
iOS的通知中心功能介绍 负责协调应用中不同对象之间的消息通信。 每个应用程序都会有个通知中心(NSNotifictionCenter)的实例。 任何对象都可以通过通知中心发布通知,并携带信息。其他对象可以对可能发消息的对象进行订阅。这就类似与广播和广播订阅中。发送源于接受者的关系可以说一对一也可以是一对多。 一条完整的通知 需要包含三个部分: 1、通知名称(标题):(原创 2016-05-17 23:42:05 · 489 阅读 · 0 评论 -
Objective-序列帧动画一般使用步骤:
序列帧动画一般使用步骤: //0、判断图片是否已加载 if (self.annimImg.isAnimating){ return; } //1、设置动画数组 self.annimImg.animationImages = imageArray; //2.设置播放次数(1次) self.annim原创 2016-04-21 23:06:22 · 568 阅读 · 0 评论 -
iOS设置状态栏
一、设置状态栏的风格: 重写父类方法preferredStatusStyle: 返回状态栏的风格属性 (UIStatusBarStyle)preferredStatusStyle { Return UIStatusStyleLightContent; (PS:返回的这个描述状态栏的值是枚举) } 二、设置状态栏的可见性, 重写方法prefersStatus原创 2016-05-17 13:03:44 · 396 阅读 · 0 评论 -
UITableView的用法(Objective-C)
两种形式: 分组 UITableViewStylePlain 不分组 UITableViewStyleGrouped 一、实现列表一般过程: 1、遵守table数据源协议UITableViewDataSource> 3、设置数据源 2、重写方法: 两个: //必须实现:返回每个分组中的条目 - (NSInteger)tableView:(UITableV原创 2016-05-17 12:55:34 · 631 阅读 · 0 评论 -
objective-c拉伸图片的三种方法
1、 [myimage resizableImageWithCapInsets:UIEdgeInsetsMake(h, w, h, w)]; 2、 [myimage stretchableImageWithLeftCapWidth:(NSInteger) topCapHeight:(NSInteger)]; 3、 [myimage resizableImageWithCapIn原创 2016-05-17 12:54:00 · 1016 阅读 · 0 评论 -
iOS单例模式学习
单例模式通常有两种:懒汉式和饿汉式 区别: 懒汉式: 第一次用到单例对象时 再创建单例对象。 饿汉式: 饿汉式:一进入程序就创建。 在iOS开发中为了节约资源因此推荐使用懒汉式。 iOS中懒汉式使用的一般过程: 1、头文件中自定义一个shareInstance类方法用来返回单例对象 2、实现文件中重写allocwithzero方法,返回要执行单例的对象(对象为全原创 2016-02-28 10:11:42 · 357 阅读 · 0 评论 -
NsThread学习
创建和启动: NSThread *thread = [[NSThread alloc]initWithTarget:self selector:@selector(download) object:nil]; thread.name = @"下载线程"; [thread start]; 参数分析:调用方法、传递参数 PS:init方法后仅仅是创建了线程对象,需要通原创 2016-02-21 00:55:33 · 393 阅读 · 0 评论 -
GCD学习
一、GCD使用 使用步骤: 1、定制任务 2、将任务添加到队列中 GCD执行任务的两种方式: 1、同步:只能在当前线程中执行任务不具备开线程的功能 dispatch_sync(dispatch_queue_t queue,dispatch_block_t block); 2、异步:可以在新的线程中执行任务,具备开线程的能力 dispatch_async(d原创 2016-02-23 12:48:37 · 307 阅读 · 0 评论 -
swift字符串
初始化 var emptyString = "" // empty string literal var anotherEmptyString = String() // initializer syntax // 这两个字符串都为空,并且两者等价 遍历字符串 for character in"teeeeesdfs".chara原创 2016-04-01 14:10:47 · 407 阅读 · 0 评论 -
Objective-C中KVO简单用法
KVO:(Key-ValueObserving)objective-c中可以使用KVO来监听属性改变。(通过设置观察者来实现) 两个方法: 1、设置监听 - (void)observeValueForKeyPath:(nullable NSString*)keyPath ofObject:(nullable id)object change:(nullableNSDictionaryNS原创 2016-03-20 10:14:34 · 613 阅读 · 0 评论 -
Swift之可选数据类型
刚刚看swift语言,被可选类型弄得很绕,看了好几遍,大概整理了一下。 使用可选类型的意义:当一个我们访问一个可选类型的常量或者变量的时候当它的值为空时不会报空指针而是表示没有值(避免了空指针的错误)。即使用可选(optionals)来处理值可能缺失的情况。 可选类型的值有两种情况:有值、或者为nil。 PS:Swift 的nil和Objective原创 2016-04-01 01:39:17 · 633 阅读 · 0 评论 -
快速排序-Swift 实现
如题,上代码:func quick_sort(arr: inout [Int]) { if arr.count == 0 { print("Data error") } _q_sort(arr: &arr, start: 0, end: arr.count - 1) } func _q_...原创 2018-06-19 17:30:45 · 378 阅读 · 0 评论