iOS
wmqi10
这个作者很懒,什么都没留下…
展开
-
设置行间距,计算label的高度 ios
当这是label的行间距时,计算大小如果用sizetofit,当只有一行文字时,会计算出一个行间距。这样计算出的高度就不正确。下面是计算富文本文字的高度。//为了算出一行的高度,shoreString如果含有换行,计算出来一行的高度不对。所以用test代替 CGFloat oneRowHeight = [@"test"sizeWithAttributes:@{NSFont原创 2016-05-23 15:59:58 · 1558 阅读 · 0 评论 -
UIView和CALayer的区别和联系
面试的时候遇到一个问题,UIView和CALayer的区别,确实还不知道具体的区别,所以研究了下他们俩之间的关系。1, uiview 是uikit的(只能iOS使用) calayer 是QuartzCore的(ios 和mac os通用)2, calayer 比uiview更加轻量级别, 但是可以实现同样的效果3, uiview比calayer多了一个事件处理转载 2015-06-07 19:35:14 · 1063 阅读 · 0 评论 -
UITableViewCell使用自动布局计算高度
今天心情不好,公司迟迟不发工资,说河南的公司资金出现问题,所以北京公司没办法发工资,真是坑爹公司,郁闷今天遇到一个问题,使用了自动布局自动计算高度,但是出现cell每次都初始化,不复用,最后找到解决办法。下面是解决办法在- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSInd原创 2015-05-28 17:58:23 · 4664 阅读 · 0 评论 -
Offset UITableView Content When Keyboard Appears
This post will show how to adjust the content insets of a uitableview or uitextview when the keyboard pops up, so nothing is hidden underneath. I’m just going to jump right into the code for this one转载 2015-05-21 11:35:39 · 751 阅读 · 0 评论 -
No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_
错误代码:No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s)xcodebuild 这个target的时候命令行报错。LY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_A转载 2014-03-27 13:01:43 · 20671 阅读 · 0 评论 -
CUICatalog: Invalid asset name supplied:
今天写了加载图片,默认图片写的是[UIImageimageNamed:@""],之后就报下面的错误,这个提示的意思是说你用了这个方法 [UIImage imageNamed:name];但是这个name却是空的,所以就报了这个错了。解决方法,在项目中搜索UIImage imageNamed:,然后打印看看所谓的name是否为空。找到后替换。原创 2015-05-08 10:12:48 · 29769 阅读 · 0 评论 -
layer.borderWidth 边框粗细问题
最近做一瀑布流项目,产品要求边框线是1像素,为了适配6和6plus,1除以3是除不尽的,如果设置borderWidth为0.3,有的机型显示不出来,所以设置borderWidth为0.5.但这出现另外一种情况,四周的边框线粗细不一致,这个问题折磨了我很久,最终找到了解决办法CGFloat scale = [[UIScreen mainScreen] scale];CGFloat widt原创 2015-05-09 22:20:01 · 12465 阅读 · 3 评论 -
xcode6中新建空工程和在iPhone5s上的程序界面只有iPhone4上的大小
升级xcode6之后,直接建立Empty工程后发现,这是太坑,真的是什么都没有啊。只能换个方法了总结如下:1.新建一个single view application2.打开 Info.plist(别告诉我不知道去哪里找info.plist),删除里面的 Launch screen interface file base name以及 Main Main storyboard原创 2014-11-24 14:49:07 · 3419 阅读 · 2 评论 -
@2x与@3x的图片加载问题
使用initWithContentsOfFile可以优先选择3x图像,而不是2x图像。NSString *path = [[NSBundlemainBundle] pathForResource:@"smallcat"ofType:@"png"];UIImage *image = [[UIImagealloc]initWithContentsOfFile:path]原创 2014-11-06 16:35:09 · 13867 阅读 · 0 评论 -
判断iOS的设备型号
- (NSString*) doDevicePlatform{ size_t size; intnR = sysctlbyname("hw.machine", NULL, &size, NULL, 0); char*machine = (char*)malloc(size); nR = sysc原创 2014-10-11 17:43:20 · 6032 阅读 · 0 评论 -
检测网络是否有网络
-(BOOL) isConnectionAvailable{ // Create zero addy struct sockaddr_in zeroAddress; bzero(&zeroAddress, sizeof(zeroAddress)); zeroAddress.sin_len =sizeof(zeroAddress);原创 2014-09-29 14:30:09 · 692 阅读 · 0 评论 -
滚动时隐藏navigationbar
self.navigationController.hidesBarsOnSwipe =YES;原创 2015-06-11 15:42:33 · 2393 阅读 · 0 评论 -
取消延迟执行函数 cancelPreviousPerformRequestsWithTarget
延迟执行函数[self performSelector:@selector(scrollDone)withObject:nilafterDelay:0.5];在0.5秒内取消执行函数,带的参数必须一样,才能取消成功[NSObjectcancelPreviousPerformRequestsWithTarget:meselector:@selector(scr原创 2015-08-18 16:48:08 · 17679 阅读 · 0 评论 -
判断子view是否添加到父view上
if (![subViewisDescendantOfView:parentView]) { NSLog(@"已添加上"); }原创 2016-05-23 15:31:00 · 4697 阅读 · 0 评论 -
runtime
什么是runtime?runtime直译就是运行时间,run(跑,运行) time(时间),网上大家都叫它运行时,它是一套比较底层的纯C语言API,属于一个C语言库,包含了很多底层的C语言API,它是OC的幕后工作者,我们平时写的OC代码,在运行过程时,都会转为runtime的C语言代码runtime有什么用?如果你之前不知道runtime,可能觉得它没什么用,其实他的作用转载 2016-04-08 15:25:39 · 704 阅读 · 0 评论 -
iOS开发编码建议与编程经验
在开发过程中,我们不仅要去看别人的代码,也要让别人看我们的代码。那么,有一个良好的编码习惯将会非常重要。下面将会罗列使用Objective-C来开发iOS的编码建议。【1】任意函数长度不得超过50行。(其实很容易就超过50行,这就要考虑代码抽取了。)【2】任意行代码不能超过80字符。(其实也很容易超过80字符,可以考虑多行显示,比如有多个参数时,可以每个参数放一行。)可以在Xcod转载 2016-03-24 10:09:06 · 753 阅读 · 0 评论 -
聚焦内容的视图布局 OC
FocusCollectionViewLayout是UICollectionViewLayout 的子类,可以聚焦 UICollectionViewCell 内容。首先建FocusCollectionViewLayout继承UICollectionViewFlowLayout,改变每个cell的frame。standartHeight是不被聚焦的cell高度。原创 2016-02-18 18:14:04 · 1022 阅读 · 1 评论 -
从2月14号开始,上传AppStore会碰到:Failed to locate or generate matching signing assets
从2月14号开始,上传AppStore时可能会碰到这个问题:Failed to locate or generate matching signing assetsXcode attempted to locate or generate matching signing assets and failed to do so because of the following iss转载 2016-02-16 14:59:29 · 3268 阅读 · 0 评论 -
ios开发之block的使用,及注意事项
Block作为C语言的扩展,并不是高新技术,和其他语言的闭包或lambda表达式是一回事。需要注意的是由于Objective-C在iOS中不支持GC机制,使用Block必须自己管理内存,而内存管理正是使用Block坑最多的地方,错误的内存管理 要么导致return cycle内存泄漏要么内存被提前释放导致crash。 Block的使用很像函数指针,不过与函数最大的不同是:Block可以访问函数转载 2015-12-03 18:00:10 · 2960 阅读 · 0 评论 -
使用GCD实现倒计时
__blockNSInteger timeout = 300; dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0); dispatch_source_t _timer =dispatch_source_create(DISPATCH_SOURCE原创 2015-12-07 13:59:45 · 807 阅读 · 0 评论 -
让Xcode的控制台支持LLDB类型的打印
这有什么用?怎么说尼,笔者认为这个还是比较有用滴,为什么有用尼?因为在Xcode断点调试的时候, 在控制台输入 po self.view.frame 或者 po id 类型的时候就死翘翘了。不信? 看如下图 :进入正题打开终端输入三条命令:1. touch ~/.lldbinit2. echo display @import UIKit >> ~/.lldbin转载 2016-01-04 11:44:53 · 1544 阅读 · 0 评论 -
解决Xcode7多个模拟器的方法
xcode模拟器都这样显示,没办法判断是哪个系统,解决办法是1.关闭xcode2.终端输入 sudo killall -9 com.apple.CoreSimulator.CoreSimulatorService 输入你的电脑密码3.终端输入 rm -rf ~/Library/Developer/CoreSimulator/Devices原创 2016-01-04 11:15:11 · 3452 阅读 · 0 评论 -
iOS9 xib加载正常,ios8.4加载缓慢
写好界面,想看看适配是否正常,就打开模拟器8.4运行了下,点击按钮,至少反应3-5s才进到页面,之后把所有型号手机系统8.4的都跑了一遍,都出现反应迟钝的问题,由于页面都是用xib写的,并且是多个cell的问题,开始以为是加载cell太多导致的这个问题,之后让一条cell的返回,发现只有其中1个cell加载缓慢,由于cell里面的控件没几个,就首先去检查写的代码,全部都注释掉,还是加载缓慢,转而转原创 2016-01-19 14:11:45 · 1488 阅读 · 0 评论 -
UIPickView 的高度 iOS9 Xcode7
UIPickView在ios9之前的高度都是不可调整的,默认是216,即使设置的UIPickView的高度为100,最后的高度还是216。由于不可改,在程序中高度都默认写成了0,但是在Xcode7,ios9上运行,pickView没有显示,开始一直以为是数据源的问题,后来才发现是高度所致,给UIPickView设置个高度就可以。原创 2015-09-29 15:13:12 · 1377 阅读 · 0 评论 -
iOS多线程GCD
Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。dispatch queue分成以下三种:1)运行在主线程的Main queue,通过dispatch_get_main_queue获取。/*!* @function dispatch_get_main_queue** @abstract* Returns the转载 2014-08-12 17:46:36 · 573 阅读 · 0 评论 -
禁止NSLog使用,在release版本禁止输出NSLog内容
来自:http://blog.csdn.net/xunyn/article/details/8021168参考: http://blog.sina.com.cn/s/blog_67996868010178gh.html参考:http://www.cnblogs.com/yingkong1987/archive/2012/10/26/2740459.html在程序开发中,我们转载 2014-09-09 14:14:48 · 651 阅读 · 0 评论 -
iOS 类别和扩展(Categories和Extensions)
分类(Category) 分类能够做到的事情主要是:即使在你不知道一个类的源码情况下,向这个类添加扩展的方法。 此外,分类能够保证你的实现类和其他的文件区分开。 1 #import “UIViewController.h”2 @interface UIViewController(CustomView)3 -(void)extMeth转载 2014-07-02 15:24:40 · 3170 阅读 · 0 评论 -
block的使用
本文来自台湾的某开发人员的博客,被墙,感觉讲的比较易懂,所以引过来。文字简体化了,原来是繁体,变数=变量,这个注意一下。本文的顺序是层层深入的,要想简单的了解,只看X.1 初探Block就好了本章学习目标:1. 了解何谓block。2. 了解block的使用方法。Block 是iOS在4.0之后新增的程式语法,严格来说block的概念并不算是基础程式设计的范围,对初转载 2014-02-21 13:48:24 · 755 阅读 · 0 评论 -
iOS如何判断当前网络的运营商
在IOS上存在retain屏,经常需要在一些时刻用到高清图,有些时候也要到普通图。 在网络条件很爽的情况下,这当然不在话下。如果咱是iphone用户,又正好用的是移动卡。 如果还用的高清图的话是不是灰常的杯具,显然是一定的。 从目前的情况来看,只有移动的gprs的卡速度慢的像牛一样,这样我们就需要权衡在一些场合牺牲点质量 换取速度。 那么我们就得必须知道当前网络是神马运营商转载 2013-12-27 16:00:00 · 4009 阅读 · 1 评论 -
nil、Nil、NULL、NSNull、[NSNull null] in Objective-C
很多初学者对nil,Nil,NULL,NSNull,[NSNull null]这五个概念很混淆!先借用网上的解释:nil: A null pointer to an Objective-C object.( #define nil ((id)0) )Nil: A null pointer to an Objective-C class. NULL: A null pointe转载 2013-12-16 16:39:04 · 684 阅读 · 0 评论 -
判断星期几
typedefenum { DayOfWeekUnknown = 0, DayOfWeekMon, DayOfWeekTue, DayOfWeekWed, DayOfWeekThu, DayOfWeekFri, DayOfWeekSat, DayOfWeekSun转载 2013-12-16 09:25:13 · 1159 阅读 · 0 评论 -
Choose a destination with a supported architecture in order to run on this device.
Also you need to select the compiler LLVM inProject --> Build Settings --> Build Options原创 2013-12-05 17:58:29 · 1096 阅读 · 0 评论 -
iOS7滑动返回
【转载请注明出处】iOS 7中在传统的左上角返回键之外,提供了右滑返回上一级界面的手势。支持此手势的是UINavigationController中新增的属性interactivePopGestureRecognizer,即右滑返回只支持以UINavigationController为容器的ViewController间切换,要想在自定义容器中使用,需要一些额外的工作。基本转载 2013-11-20 21:20:30 · 40840 阅读 · 4 评论 -
iOS触屏手机点击区域的小秘密
做触屏手机产品设计,要注意所有的可点击元素都有足够的点击区域,但是这并不是说你要把所有的按钮图标链接都设计的足够大,手机上的视觉焦点和操作焦点是不一样的,操作焦点是可被放大或移动的点击区域。这里分享几个点击区域的小秘密,帮你解决操作准确率的问题。一、扩大操作焦点iPhone自带的控件NavigationBar上的Button、TabBar上的Item、ToolBar上的Butt转载 2013-07-25 16:26:44 · 4419 阅读 · 1 评论 -
有用的小代码
常用代码整理:12.判断邮箱格式是否正确的代码://利用正则表达式验证-(BOOL)isValidateEmail:(NSString *)email{NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";NSPre转载 2013-06-06 18:02:59 · 659 阅读 · 0 评论 -
ASIHttpRequest:创建队列、下载请求、断点续传、解压缩
首先,要想在ios项目中使用ASIHttpRequest,必须添加下列框架和类库:ASIHttpRequestCFNetwork.frameworkSystemConfiguration.frameworkMobileCoreServices.frameworkCoreGraphics.frameworklibz.dylib下面是我们今天要完成的任务:下载指定链接的zi转载 2013-06-04 11:35:06 · 2002 阅读 · 1 评论 -
输入框挡住键盘的解决办法
只需要在- (void)textFieldDidBeginEditing:(UITextField *)textField,- (void)textFieldDidEndEditing:(UITextField *)textField这两个方法里面调用-(void)moveView:(UITextField *)textField leaveView:(BOOL)leave这个方法就可以了原创 2013-05-28 13:54:31 · 1028 阅读 · 0 评论 -
navigation push和popviewcontroller dealloc问题
事件,在instruments检查内存泄漏时发现其中一个viewcontroller在navigation做pop操作后未做dealloc,导致内存泄漏push操作代码如下: ViewController_leaveAMessage *leaveMessage = [[ViewController_leaveAMessage alloc]initWithNibName转载 2013-05-23 17:56:00 · 7093 阅读 · 1 评论 -
block的注意事项
1. 在block内中,使用self或者类的成员变量,会导致self的引用计数被加1,引起循环引用,导致无法释放当前的self。里面的self会引用计数加一,内存释放不了。self会被retain一次。当self释放的时候,需要block释放后才会对self进行释放,但是block的释放又需要等self的dealloc中才会释放。如此一来变形成了循环引用,导致内存泄露。原创 2014-02-21 14:52:00 · 632 阅读 · 0 评论 -
iOS 编译百度地图静态库-合二为一
现在我们需要解压BaiduMapApiLib,可以看到inc文件夹包含头文件,libs包含了模拟器和device的百度api静态库,以及mapapi.bundle(mapapi.bundle中存储了定位、默认大头针标注View及路线关键点的资源图片。如果您不需要使用内置的图片显示功能,则可以不添加此bundle文件),之后我们需要把模拟器和device的百度api静态库合并成一个,方便之后使用:打转载 2014-02-25 10:42:14 · 1658 阅读 · 0 评论