- 博客(49)
- 收藏
- 关注
转载 iOS成长之路--iOS 11 安全区域适配总结
导语:本文主要是对iOS 11下APP中tableView内容下移20pt或下移64pt的问题适配的一个总结。内容包括五个部分:问题的原因分析、adjustContentInset属性的计算方式、什么情况下的tableView会发生内容下移、有哪些解决方法、解决这个问题时遇到的另外一个小问题。一、iOS 11下APP中tableView内容下移20pt或下移64pt的原因分析问题如下图所示
2017-10-09 09:44:26
503
转载 iOS成长之路-- XCode工程中 Project 和 Targets区别
XCode工程中 Targets讲解是本文要介绍的内容,相信很多人都注意到XCode中, 有个Target的概念. 这在很多地方都有所体现, 比如打开一个工程后, 左侧的列表中有Targets一项, 而在工程界面的顶部菜单中, project里面也有多个涉及到Target的项目, 那么这个Target到底是什么呢? Apple的人是这样说的:“ Targets that define
2017-10-08 10:16:55
433
原创 iOS积累--textField获取键盘高度以及限制字数
获取键盘: 方法: 增加监听, 当键盘出现或改变时收到消息 注意:需要在dealloc里面注销通知[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; //键盘将要出现
2017-08-07 11:34:03
642
转载 iOS积累--objectForKey与valueForKey在NSDictionary中的差异
从 NSDictionary 取值的时候有两个方法,objectForKey: 和 valueForKey:,这两个方法具体有什么不同呢?先从 NSDictionary 文档中来看这两个方法的定义:objectForKey: returns the value associated with aKey, or nil if no value is associated with a
2017-07-28 14:15:07
421
原创 iOS积累--字符串转化为NSDate, 获取当前时区的系统时间
iOS积累–字符串转化为NSDate, 获取当前时区的系统时间“` + (NSDate )currentDateByPreviousDate:(NSDate )date{// 获得系统时区NSTimeZone *zone = [NSTimeZone systemTimeZone];//得到源日期与世界标准时间的偏移量NSInteger interval = [zone secondsFrom
2017-07-24 10:53:51
1959
转载 iOS积累--- 野指针和僵尸对象
野指针.C语言: 当我们声明1个指针变量,没有为这个指针变量赋初始值.这个指针变量的值是1个垃圾指 指向1块随机的内存空间。OC语言: 指针指向的对象已经被回收掉了.这个指针就叫做野指针.僵尸对象. 内存回收的本质.申请1块空间,实际上是向系统申请1块别人不再使用的空间.释放1块空间,指的是占用的空间不再使用,这个时候系统可以分配给别人去使用.在
2017-07-18 14:54:44
289
转载 iOS积累-iOS图片填充UIImageView(contentMode)
本文主要形象的介绍一下UIView的contentMode属性: UIViewContentModeScaleAspectFit, //这个图片都会在view里面显示,并且比例不变 这就是说 如果图片和view的比例不一样 就会有留白如下图1 UIViewContentModeScaleAspectFill
2017-07-13 08:49:06
427
转载 iOS积累-类方法能否访问自己的属性, self调用问题
类方法不能直接访问自己的属性 即[objc] view plain copyself.iconImageArr;不能用self访问。 在类方法中要访问自己的属性,必须要在类中实例化一个对象,然后再调用;如下方代码:[objc] view plain copy// // F
2017-07-03 11:15:12
8669
原创 iOS积累-为什么使用属性之后, 同时重写setter,getter方法会报错
今天有一个初学者遇到一个问题,就是使用property的时候,同时重写set get方法会报错,如#import @interface ViewController : UIViewController{ } @property (nonatomic, copy) NSString *name; - (void)setName:(NSString *)name; - (NSString *)
2017-06-27 17:02:08
1104
原创 iOS-- NS_ENUM和NS_OPTIONS区别
iOS开发NS_ENUM和NS_OPTIONS区别OC里枚举的两种类型.NS_ENUM和NS_OPTIONS本质上是一样的都是枚举.typedef NS_ENUM(NSInteger, UIViewAnimationTransition) { UIViewAnimationTransitionNone, UIViewAnimationTr
2017-06-15 15:16:03
340
转载 iOS枚举(enum)
前言Enum,也就是枚举,从C语言开始就有了,C++、Java、Objective-C、Swift这些语言,当然都有对应的枚举类型,功能可能有多有少,但是最核心的还是一个—规范的定义代码中的状态、选项等“常量”。Item 5 - Use Enumerations for States, Options, and Status Codes本节的内容就是如何正确的使用枚举。
2017-06-15 15:10:42
273
原创 iOS alloc、init和new方法
alloc:分配内存。init:初始化。new:代替上面两个函数:分配内存,并且初始化。 new 和alloc,init 在功能上面几乎是一致的,分配内存并完成初始化注意:1.在实际开发中很少会用到new,一般创建对象时我们一般是 [[className alloc]init];2.区别只在于alloc分配内存的时候使用了zo
2017-06-14 11:33:04
418
转载 在release版本禁止输出NSLog内容
一般我们在APP开发中,喜欢用NSLog输出语句来调节bag,而项目完成之后没有删除或注释,从而影响真机的执行效率,给大家提供一个方法,来解决这个问题: 前提:在XCode做开发调试时往往需要打印一些调试信息做debug用, 大家知道当打印信息的地方多了之后在模拟器上跑可能不会有什么问题, 因为模拟器用的是电脑的硬件但是当应用跑在设备上时这些输出语句会在很大程度上影响应用的性能, 针对这种问题可以
2017-06-07 16:28:56
789
原创 xcode里面怎么给文件加前缀
很多时候我们建文件时,会想要带上前缀, 不管是公司名也好,还是自己的标识名也好.在已有工程中,点击工程target,右侧Project Document中有Class Prefix,以后每次创建类都会带前缀,至于已经生成的,比如AppDelegate则需要手动改下类名以保持一致。
2017-06-07 14:56:34
773
原创 __VA_ARGS__用法(转)
自定义调试信息的输出 调试信息的输出方法有很多种, 例如直接用printf, 或者出错时使用perror, fprintf等将信息直接打印到终端上, 在Qt上面一般使用qDebug,而守护进程则一般是使用syslog将调试信息输出到日志文件中等等… 使用标准的方法打印调试信息有时候不是很方便, 例如Qt编程, 在调试已有的代码时, 我想在打印调试信息的地方, 把代码位置也打印出来以
2017-06-07 09:56:19
2817
原创 关于关于判断JS对象是否拥有某属性
访问元素属性 getAttribute 不存在返回null,特性名可不区分大小写 dom对象访问公共属性,自定义属性不能访问,div.id访问对象属性 1.使用in关键字 该方法可以判断对象的自有属性和继承来的属性是否存在。 复制代码代码如下:var o={x:1}; “x” in o; //true,自有属性存在 “y” in o; //false “toString” in o;
2017-05-18 14:52:15
412
转载 Html中行内元素有哪些?块级元素有哪些?
1.关于行内元素和块状元素的说明 根据CSS规范的规定,每一个网页元素都有一个display属性,用于确定该元素的类型,每一个元素都有默认的display属性值,比如div元素,它的默认display属性值为“block”,成为“块级”元素(block-level);而span元素的默认display属性值为“inline”,称为“行内”元素。div这样的块级元素,就会自动占据一定
2017-05-10 09:25:57
294
原创 text-align的妙用
今天做微信小程序界面的时候需要做这样一个东西,如下图, 这是一个按钮,按钮上面有一个图片和底部的title wxml: <view class="bottom"> <image src="../../images/QRcode.png"></image> <view class="bottom-item-title">我不相信</view> </view>wxss:
2017-05-09 11:31:52
3098
原创 点击链接跳转到QQ的情况; qq交谈
项目中遇到了 点击链接跳转到QQ的情况,且不需要有对方的QQ好友。 之前自己在看其他网页的时候,经常会出现如下面图的这个 之前认为这个很高大上,要和QQ对接。 这次用到上网搜了一下,发现QQ推广有这个功能,代码就一句。 QQ推广 登录QQ推荐,再开通一下, 最后复制一下代码就ok了。
2017-04-18 11:03:36
12039
转载 路径中 斜杠/和反斜杠\ 的区别
原文链接: http://blog.csdn.net/zlwzlwzlw/article/details/7768313最近在项目中遇到了一个小问题,纠结了半天。路径中使用斜杠/和反斜杠\的区别到底是什么。查阅了一些资料后可知。Unix使用斜杆/ 作为路径分隔符,而web应用最新使用在Unix系统上面,所以目前所有的网络地址都采用 斜杆/ 作为分隔符。W
2017-04-17 11:12:44
389
原创 漫漫之路 cell的工厂模式
实际开发中,tableview的cell可能有多种样式, 这时我们一般会根据某个属性的不同进行判断. 以下图为例: 有三种情况: 1. 一张大图加下面一行描述 2.两张图片 3.一下小图 加两个label 这三种情况一般就是3个cell,一个cell当然也能
2016-01-23 16:56:54
1477
1
转载 设置UIButton的文字显示位置、字体的大小、字体的颜色
btn.frame = CGRectMake(x, y, width, height);[btn setTitle: @"search" forState: UIControlStateNormal];//设置按钮上的自体的大小//[btn setFont: [UIFont systemFontSize: 14.0]]; //这种可以用来设置字体的大小,但是可能会在将
2015-12-22 19:16:00
228
原创 UI 17 异步加载图片 KVO
真实开发中,网络接口返回的JSON或XML数据中,通常不包含图片,而是给出图片的URL.因此需要根据图片URL获取图片数据 因为HTTP协议是超文本传输协议,所以可以传输图片. 图片下载是IOS开发中常用的功能,但系统并未提供图片下载类.为了便于后续的使用,可以将图片下载封装到一个类里面(ImageDownLoader) ImageDownLoader允许外界指定URL,提供开始下载和取消下载
2015-12-05 19:26:06
252
原创 UI 网络请求
HTTP协议HTTP协议,Hyper Text Transfer Protocol(超⽂本传输协议)是 ⽤于从万维⺴服务器传送超⽂本到本地浏览器的传输协议,HTTP是 ⼀个应⽤层协议,由请求和响应构成,是⼀个标准的客户端服务器 模型。 http 3次握手 用户连续向服务器3次发送一样的请求 第三次服务器不再询问,开始执行 url:统一资源定位符,也被成为网址,因特网上标准的资源网址 url的
2015-12-05 19:23:18
399
原创 UI XML,JSON 数据结构解析
所谓”解析”:从事先规定好的格式中提取数据 解析的前提:提前约定好格式,数据提供方按照格式提供数据,数据获取方则按照格式获取数据 XML:Extensible Markup language(可扩展标记语言) XML的格式: 节点使用一对标签表示 起始标签和结束标签 根节点只有一个,是起始节点.节点可以嵌套
2015-12-05 16:58:44
401
原创 UI Storyboard
可视化设计 拖控件的 在AppDelegate的-application:didFinishLaunchingWithOptions: 方法中不需要再用代码初始化一个window 我们可以把我们需要的控件在Storyboard中添加上 但是想实现方法的话,还需要在对应的viewController里面声明属性 以键盘回收: 利用拉线 设置代理
2015-12-05 16:11:55
320
原创 UITableView 的 自定义cell
自定义cell 因为很多时候系统提供的cell满足不了我们的功能,所以有了我们自定义的cell 自定义cell的步骤: 1.创建一个继承于UITableViewCell的子类 2.重写初始化方法 3.在初始化方法里添加控件,且添加到self.contentView上 4.把系统的cell替换成自定义的cell 我们在返回cell方法里进行了改进,在给model赋值的同时,
2015-11-26 14:54:25
369
原创 UITableVIew 编辑
UITableView的编辑: 删除,添加 应用场景:通讯录 中删除联系人,添加联系人 编辑的步骤: 1.开启UITableView的编辑状态 这步需要注意的是一般会在一个按钮里面写, 有开有肯定有关编辑状态,再点一下这个按钮,关闭编辑状态. 我们利用了tableView 的 editing属性(BOOL型) [self.tableView
2015-11-26 11:47:05
287
原创 UI 第九天 UITableView
表视图UITableView,iOS中最重要的刷图 表视图通常用来管理一组具有相同数据结构的数据 UITableView继承自UIScrollView,所以它也是可以滚动的 表视图可以分区显示数据,每个分区称为一个section,每一行称为row,编号都是从0开始的 初始化: UITableView *tableView = [[UITableView alloc] initWith
2015-11-20 23:14:41
300
原创 欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2015-11-20 23:13:18
223
原创 UI 第八天 UINavigationController
UINavigationController : 导航控制器,用来管理多个控制器 可以认为是管理控制器的控制器,主要管理有层级关系的控制器 UINavigationController继承于UIViewController,以栈的方式管理所控制的视图控制器,至少要有一个被管理的视图控制器,这个控制器我们称为:导航控制器的根视图控制器 任何继承自UIViewController的类(多态)都
2015-11-19 23:22:54
289
原创 UI第七天 UIScrollView UIPageControl
UIScrollViewUIScrollView是可以滚动的view,UIView本⾝不能滚动,⼦类 UIScrollview拓展了滚动⽅⾯的功能。 UIScrollView是所有滚动视图的基类。 UITableView,UITextView等视图都是继承于该类。 使⽤场景:显⽰不下(单张⼤图);内容太多(图⽂混排);滚动 头条(图⽚);相册等 UIScrollView主要专长于两个方面
2015-11-18 22:41:39
372
原创 UI 第六天 UISegmentControl UISlider UIImageView
UISegmentControl分段按钮 可以以数组的方式初始化,给每个按钮附上标题 初始化的数组必须是字符串,或者是图片,图片必须是镂空图(能使背景颜色透出来的图), UISegmentControl的属性: 设置默认选中按钮 selectedSegmentIndex 设置选中按钮的颜色 tintColor 修改某个下
2015-11-17 19:41:05
330
原创 UI 第五天 代理设计模式 手势识别器
一. target/action设计模式 target/action 设计模式是类似于button的设置方法一样,可以让view,imageView等实现类似button的点击方法, 还有主要为了 “解耦”,耦合是衡量一个程序写的好坏的标准之一,也是衡量模块与模块之间关联程度的指标. “高内聚,低耦合”是面向对象编程的核心思想. 另一方面也是因为touch的局限性,虽然view可以通
2015-11-16 22:30:20
291
原创 UI第四天 触摸 响应者链 target-action
UIEvent: 事件,是由硬件捕捉的一个表示用户操作设备的对象 分三类: 触摸事件(touch),晃动事件(motion),远程控制事件 触摸事件4个方法 也就是4个过程 1.touchBegan 开始触摸 2.touchMoved 触摸中 3.touchEnd 触摸结束 4.touchCancel 意外退出我们可以可触摸实现手势, 需要一个重要的类UITouch
2015-11-14 17:13:01
411
原创 OC第二天 UITextField UIButtton UIAlertView
*UITextField:* UiTextField:文本框 用来输入东西的 和UILabel一样继承于ULControl 所以有很多属性和UILabel一样声明与UILabel的声明一样 text, backgroundColor textAligment font等属性与UILabel一样 下面来介绍UITextField不同于UILabel的属性 place
2015-11-12 13:45:53
288
原创 UI第一天UIView
window是窗口,一般一个应用程序只创建一个窗口 创建window的时候,需要指定window的大小.各个手机之间的屏幕又是不一样,所以我们指定window的大小与屏幕(Screen)大小一致self.window = [[[UIwindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]]autorelease]; — 获取手机屏幕 边界
2015-11-10 21:47:13
311
原创 OC第十天 内存管理高级
属性的语义特性以及使用范围: assign 一般用于基本数据类型 ,因为基本数据类型的内存不需要我们管理, 但是也可以用于对象 不过会产生野指针异常的问题,需要对原本的set,get方法进行修改现在有个Person类 有个name属性 如:`Perosn *per = [[Person alloc]init]; // 用alloc进行定义,以便我们进行内存管理,类方法不需要管理.
2015-11-07 18:49:27
299
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人