![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS开发
王大锤子呦
认真你就赢了
展开
-
GPU 资源消耗原因和解决方案:
GPU 资源消耗原因和解决方案:GPU能干的事情比较单一:接收提交的纹理Texture????额顶点描述(三角形),应用变换(transform),混合并渲染,然后输出到屏幕上。通常你所能看到的内容,主要也就是纹理(图片)和形状(三角模拟的矢量图形)两类。1:纹理的渲染:所有的Bitmap,包括图片,文本,栅格化的内容,最终都要由内存提交到显存,绑定为GPU Texture。不论是提交到显存的过程,还是GPU调整和渲染Texture的过程,都要消耗不少GPU资源。当在较短时间显示大量图片时(比如Tab原创 2021-12-30 19:08:58 · 3325 阅读 · 0 评论 -
CPU资源消耗原因和解决方案:
1:对象创建对象创建会分配内存,调整属性,甚至还有读取文件等操作,比较消耗CPU资源。尽量用轻量的对象代替重量的对象,可以对性能有所优化。比如CALayer比UIView要轻量许多,那么不需要响应触摸事件的控件,用CALayer显示会更加合适,如果对象不涉及UI操作,则尽量放到后台线程区创建,可惜的是包含有CALayer的控件都只能在主线程创建和操作。在性能敏感的界面,Storyboard并不是一个好的技术选择。尽量推迟对象创建的时间,并把对象的创建分散到多个任务中去。如果对象可以复用。并且复用的代原创 2021-12-30 18:48:37 · 2872 阅读 · 0 评论 -
iOS导航条底部 与self.view 的分界线怎么隐藏
设置背景图片self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];加上下面代码可以取消导航下边的线,此方法也可以使用于tabbarself.navigationController.navigationBar原创 2015-01-06 14:28:55 · 1691 阅读 · 0 评论 -
Objective-c中在ARC环境下使用PerformSelector方法回产生警告
Objective-c中在ARC环境下使用PerformSelector方法回产生警告:PerformSelector may cause a leak because its selector is unknown 解决办法是:添加这三行代码原创 2014-12-18 17:25:42 · 942 阅读 · 0 评论 -
iOS加载并显示bundle的.txt文件的方法
- (void)jiazaitxt{ self.myWebview = [[UIWebViewalloc]initWithFrame:CGRectMake(0,0, [UIScreenmainScreen].bounds.size.width, [UIScreenmainScreen].bounds.size.height+60)];// myWebVi原创 2015-01-27 10:57:42 · 3808 阅读 · 0 评论 -
iOSreloadSections:withRowAnimation:
[self.tableViewreloadSections:[NSIndexSetindexSetWithIndex:1]withRowAnimation:UITableViewRowAnimationRight];原创 2015-01-27 16:08:07 · 3005 阅读 · 0 评论 -
Xcode6创建空工程详细做法
下载完AddMissingTemplates-master之后,那么手动进入文件夹AddMissingTemplates-master,然后把Empty Application.xctemplate 拷贝到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/iOS/Application下就可以了,但是要保证你的Xc原创 2014-12-18 13:09:44 · 1058 阅读 · 0 评论 -
iOS MD5 算法
- (NSString *)MD5Hash{constchar *cStr = [selfUTF8String];//转化为utf-8unsignedchar result[16];//开辟一个16字节(128位:md5加密出来就是128位/bit)的空间(一个字节=8字位=8个二进制数) /* extern unsigned char *C原创 2014-12-19 09:27:16 · 695 阅读 · 0 评论 -
iOS 中的 va_list\va_arg\va_start和va_end的使用
va_list用于声明一个变量,我们知道函数的可变参数列表其实就是一个字符串,所以va_list才被声明为字符型指针,这个类型用于声明一个指向参数列表的字符型指针变量,例如:va_list ap;//ap:arguement pointerva_start(ap,v),它的第一个参数是指向可变参数字符串的变量,第二个参数是可变参数函数的第一个参数,通常用于指定可变参数列表中参数的个数。va_arg转载 2014-12-19 10:28:45 · 1842 阅读 · 0 评论 -
iOS用SegmentController来切换tableView的时候 reloadData会造成数据重复创建 解决办法
把在Cell上面创建的控件放在Cell==nil的判断里面,这样,每次进来就会先判断有没有,就可以避免数据重复创建,导致视图越盖越厚if (cell==nil) { cell=[[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:cellIDD];原创 2015-01-29 15:09:56 · 1650 阅读 · 0 评论 -
iOSUISegmentController控制tableView的切换《UISegmentController不在导航栏上》
1:创建两个tableView@propertyUITableView *tableViewA;@propertyUITableView *tableViewB; self.tableViewA=[[UITableViewalloc]initWithFrame:CGRectMake(SECTION_INDEX_ZERO,self.segmentView.frame.原创 2015-01-29 15:22:08 · 3624 阅读 · 0 评论 -
ios8用CLLocationManager定位获取经纬度,不执行代理的方法的解决办法
要判断一下系统版本,iOS8要加这个,iOS7不加iOS8加一句这个:[locationManager requestAlwaysAuthorization];原创 2015-01-12 14:37:06 · 1554 阅读 · 0 评论 -
iOS更新安装pods的时候的注意问题
安装podspod install --verbose --no-repo-update执行此行代码的时候,要记得关闭.xcworkspace,因为pod install的时候会修改.xcworkspace的内容的原创 2015-01-12 10:51:56 · 780 阅读 · 0 评论 -
iOS怎么修改section的文字颜色
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{ UIView *view=[[UIViewalloc]init]; UILabel *label=[[UILabelalloc]initWithFrame:CGRectMake(3,0,原创 2015-01-12 11:56:01 · 763 阅读 · 0 评论 -
iOS中使用storyboard时出现警告Unsupported Configuration: Scene is unreachable due to lack of entry points and
使用storyboard时出现警告Unsupported Configuration: Scene is unreachable due to lack of entry points and原创 2014-12-24 09:59:21 · 1354 阅读 · 0 评论 -
iOS访问手机自带的相册
1:首先遵守协议UIImagePickerControllerDelegate,UINavigationControllerDelegate2:- (void)imageChange:(UIButton *)button{ NSLog(@"调用系统相册"); if (button!=self.button) { self.isChang原创 2015-02-02 10:21:22 · 1096 阅读 · 0 评论 -
incompatible integer to pointer conversion assigning to
incompatible integer to pointer conversion assigning to的时候,把nsinteger前面的*去掉即可原创 2015-01-14 10:40:41 · 6081 阅读 · 1 评论 -
iOS中NSString和NSData的相互转化
NSString 转换成NSData 对象 NSData* xmlData = [@"testdata" dataUsingEncoding:NSUTF8StringEncoding]; NSData 转换成NSString对象 NSData * data; NSString *result = [[NSString alloc] initWithData:data encodin原创 2015-01-14 17:44:29 · 820 阅读 · 0 评论 -
iOS中UIImage存为本地文件与UIImage转换为NSData
UIImage *image=@"XXX";//png格式NSData *imagedata=UIImagePNGRepresentation(image);//JEPG格式//NSData *imagedata=UIImageJEPGRepresentation(image);NSArray*paths=NSSearchPathForDirectories原创 2015-01-14 17:49:09 · 2286 阅读 · 0 评论 -
iOS中UIAlertView的点击响应事件
1:先遵守UIAlertViewDelegate2:- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ if (buttonIndex==0) { NSLog(@"你点击了取消"); }elseif (buttonIndex=原创 2015-01-15 15:16:00 · 1051 阅读 · 0 评论 -
iOS取消导航对视图的影响
方法1:self.edgesForExtendedLayout=UIRectEdgeNone;方法2:当界面是tableView的时候[selfsetExtraCellLineHidden:self.myTableView];- (void)setExtraCellLineHidden: (UITableView *)tableView{原创 2015-02-03 17:58:38 · 1723 阅读 · 0 评论 -
iOS 动态设置UILabel的frame(宽度和高度)
CGSize labelSize=[self.myDetailLabel.textboundingRectWithSize:CGSizeMake([UIScreenmainScreen].bounds.size.width-20,0) options:NSStringDrawingUsesLineFragmentOriginattributes:@{NSFontAttributeN原创 2015-02-03 18:06:13 · 3884 阅读 · 0 评论 -
iOS动态修改UILabel的宽度
sizeWithFont在ios7.0之后失效cell.myCourse.text=cell_info.course;cell.myCourse.font=FONT;CGSize myCourseSize=[cell.myCourse.textsizeWithAttributes:[NSDictionarydictionaryWithObjectsA原创 2015-02-03 18:03:45 · 1433 阅读 · 0 评论 -
iOS 怎么判断字符串是汉字还是字母
//如果输入的昵称是字母,判断是否合格 if(self.nickNameText){ for (int i=0; iself.nickNameText.length; i++) { NSRange range=NSMakeRange(i,1); NSString *subSt原创 2015-01-16 15:36:57 · 3955 阅读 · 0 评论 -
iOS中如何动态获取label的宽度和高度
iOS7.0之后的sizeWithFont用不了了,现在用这种方法代替UIFont *fnt=[UIFontfontWithName:@"HelveticaNeue"size:14.0f]; InfoLabel.font=fnt; CGSize labelSize=[InfoLabel.textsizeWithAttributes:[NSD原创 2014-12-30 09:39:39 · 828 阅读 · 0 评论 -
iOS中如何修改系统自带的导航栏的颜色
#define RGBACOLOR(r, g, b, a) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:(a)]self.navigationController.navigationBar.barTintColor=RGBACOLOR(139,208, 191, 1);原创 2014-12-31 15:12:33 · 772 阅读 · 0 评论 -
iOS如何让button的title居左显示
xcode的右边。点击button,会出现control的属性图标,选择其中的居左的坐标即可如何是代码实现的button,detailButton.titleLabel.textAlignment=NSTextAlignmentRight;即可原创 2014-12-30 10:41:27 · 812 阅读 · 0 评论 -
iOS中如何修改UISegmentedControl的背景颜色和字体的颜色UISegmentedControl
segmentedControlStyle在iOS7 之后设置没有效果了那么如何快速的设置UISegmentedControl的背景颜色呢?#define RGBACOLOR(r, g, b, a) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:(a)]原创 2014-12-31 15:52:53 · 5117 阅读 · 0 评论 -
iOS将字符串转化为标准时间
+ (NSString *)dateStringFormNumberString:(NSString *)str{ double t = [str doubleValue]; NSDate *date = [NSDate dateWithTimeIntervalSince1970:t];//获取距离1970的时间 NSDateFormatter *fm =原创 2015-01-21 13:41:35 · 645 阅读 · 0 评论 -
ios中怎么修改导航栏返回按钮
如果有两个视图控制器a push 到 b,1.如果b 控制器有一个自定义的左侧按钮(leftBarButtonItem),则会显示这个自定义按钮;2.如果b没有自定义按钮,但是A视图的backBarButtonItem属性有自定义项,则显示这个自定义项;3.如果前2条都没有,则默认显示一个后退按钮,后退按钮的标题是a视图的标题。那么把下面这几行代码UIBarButt原创 2015-01-04 11:32:38 · 1211 阅读 · 0 评论 -
UITextField限制输入的只能是数字
//限制输入的是数字- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { return [self validateNumber:string]; }- (BOOL)v原创 2015-01-22 15:07:31 · 941 阅读 · 0 评论 -
malformed or corrupted AST file: 'Unable to load module "/Users/smile/Library/Developer/Xcode/Deri的解
Xcode编译的时候,在5s以上没有问题,但是在4s和5报错malformed or corrupted AST file: 'Unable to load module "/Users/smile/Library/Developer/Xcode/Derive解决办法为:点击XCODE的菜单Window,然后选择Organizer,在弹出的对话框的最上面选择Projec原创 2015-02-10 11:13:40 · 1105 阅读 · 0 评论 -
iOS将标准时间转化为时间戳
可以显示几小时前,几天前,几个月前等等原创 2015-01-21 13:39:54 · 976 阅读 · 0 评论 -
ios中怎么修改导航栏标题颜色
// [self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],UITextAttributeTextColor, nil]];在iOS7.0以后不能用了self.navigati原创 2015-01-04 11:20:01 · 784 阅读 · 0 评论 -
pch文件添加到Xcode6
pch文件在Xcode6之前,新建一个工程的时候,系统会帮我们自动新建一个以工程名为名字的pch (precompile header)文件,在开发过程中,可以将那些整个工程都广泛使用的头文件包含在该文件下,编译器就会自动的将pch文件中的头文件添加到所有的源文件中去,这样在需要使用相关类的时候不需要使用import就可以直接使用头文件中的内容,很大程度上带来了编程的便利性,但转载 2015-02-12 16:17:33 · 830 阅读 · 0 评论 -
iOS判断字符串中含某一个字符if ([keyName rangeOfString:@"_"].location==NSNotFound) return keyName;
if ([keyNamerangeOfString:@"_"].location==NSNotFound){ return keyName;} else{ NSLog(@"不存在某一字符");}原创 2015-03-19 16:11:02 · 1933 阅读 · 0 评论 -
iOS strong,copy,retain,weak,assign的区别,以及各自的用法
1:ARC环境下,strong代替retain.weak代替assign2:weak的作用:在ARC环境下,所有指向这个对象的weak指针都将被置为nil。这个T特性很有用,相信很多开发者都被指针指向已释放的对象所造成的EXC_BAD_ACCESS困扰过,使用ARC以后,不论是strong还是weak类型的指针,都不会再指向一个已经销毁的对象,从根本上解决了意外释放导致的crash。3:a原创 2015-03-16 14:57:49 · 1495 阅读 · 0 评论 -
iOS 本地通知
#import "AppDelegate.h"@interface AppDelegate ()@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOp原创 2015-03-26 14:53:25 · 1082 阅读 · 0 评论 -
iOS网络推送通知
推送通知是由应用服务提供商发起的,通过苹果的APNs(Apple Push Notification Server)发送到应用客户端。推送通知的过程可以分为以下几步:应用服务提供商从服务器端把要发送的消息和设备令牌(device token)发送给苹果的消息推送服务器APNs。APNs根据设备令牌在已注册的设备(iPhone、iPad、iTouch、mac等)查找对应的设备,将消息原创 2015-03-26 14:58:34 · 1173 阅读 · 0 评论 -
iOS 给UILabel增加超链接
UITapGestureRecognizer*tapRecognizer1=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickurl1:)]; self.inviteLabel.userInteractionEnabled=YES; [self.inv原创 2015-03-27 16:30:32 · 3805 阅读 · 0 评论