榆林免费做网站,重庆在线高校开放平台,蓝色网站后台,西安是哪个省属于哪个市1.通过UIDevice类的model属性可以得知当前设备是什么#xff0c;比如模拟器、iPhone、iPad还是iPod。2.使屏幕不变暗#xff1a;[[UIApplication sharedApplication] setIdleTimerDisabled:YES];3.UILabel多行文本(1)UILabel可以显示多行文本#xff0c;它有一个属性叫numbe…1.通过UIDevice类的model属性可以得知当前设备是什么比如模拟器、iPhone、iPad还是iPod。2.使屏幕不变暗[[UIApplication sharedApplication] setIdleTimerDisabled:YES];3.UILabel多行文本(1)UILabel可以显示多行文本它有一个属性叫numberOfLines可以制定行的数量超过则不显示。(2)当Label的尺寸超过指定行数对应的高度时文字会在UILabel的垂直中间的位置上上下会留白。(3)当numberOfLines属性指定为0时则不限制行数。这时候就需要根据显示的文本内容来确定对应显示区域的大小然后动态设置label的size。(4)使用这个特性会比UITextView有一个好处UITextView显示内容时上下左右会留空白造成在确定其Frame时会存在误差。而UILabel则不存在这个问题。4.UISegmentControl类中两个没有用过的方法可以对UISegmentControl界面进行定制(1)-setWidth:forSegmentAtIndex:(2)-setImage:forSegmentAtIndex;5.去掉iOS桌面图标上的高亮效果的办法在info.plist文件中加一个字段Icon already includes gloss effects选中意思就是图标已经包含高亮效果不用系统再自动添加了。6.UITableView有两个属性tableHeaderViewtableFooterView用来添加表视图的头和尾它不同于section的头和尾。7.给控件加边框圆角(1)添加QuartzCore.framework(2)代码[view.layer setBorderColor:[[UIColor redColor] CGColor]];[view.layer setBorderWidth:1.0f];[view.layer setCornerRadius:8.0f];[view.layer setMaskToBounds:YES];8.自定义导航栏视图的几个方法(1)添加自定义title视图self.navigationItem.titleView xxx;(2)添加左右自定义按钮 UIBarButtonItem *btItem [[UIBarButtonItem alloc] initWithCustomView:xxx]; self.navigationItem.rightBarButtonItem btItem; 或者 self.navigationItem.rightBarButtonItems [NSArray arrayWithObject:btItem];(3)定制导航栏背景 iOS5之后使用UINavigationBar的setBackgroundImage:forBarMetrics:方法可以定制导航栏背景。 iOS5之前新增一个UINavigationBar的扩展重写drawRect方法代码如下 -(void)drawRect:(CGRect)rect { UIImage *image [UIImage imageNamed: navBarBK.png]; [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; }9.裁剪图片UIImage *image xxx;CGImageRef newImageRef CGImageCreateWithImageInRect(image.CGImage,rect);UIImage *newImage [[UIImage alloc] initWIthCGImage:newImageRef];10.让iOS程序在iOS4.0以及之后没有多任务即按下home键之后程序直接退出在info.plist中加入一个字段Application does not run in bacground打钩。11.获取info.plist的内容[[NSBundle mainBundle] infoDictionary];12.屏幕截图UIView *currentView xxx;UIGraphicsBeginImageContext(currentView.bounds.size);[currentView.layer renderInContext:UIGraphicsGetCurrentContext()];UIImage *viewImage UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();//保存到相册UIImageWriteToSavedPhotosAlbum(viewImage,nil,nil,nil);13.Security.framework(1)使用Security.framework可以实现钥匙串访问读写但是只能在真机上使用模拟器会报错。可以用来保存一些私密数据不用再为加密烦恼。(2)苹果封装了KeychainItemWrapper类用来对钥匙串进行操作。该类通过一个表明身份的字符串和访问组字符串来初始化。实例方法如下- (id)initWithIdentifier: (NSString *)identifier accessGroup:(NSString *) accessGroup;- (void)setObject:(id)inObject forKey:(id)key;- (id)objectForKey:(id)key;- (void)resetKeychainItem;(3)钥匙链不会随着程序的卸载或者固件重装被清除可以用来维护持久的信息例如可以判断某台设备是否是第一次安装某软件。14.loadView和ViewDidLoad的区别(1)viewDidLoad方法在控制器view创建成功之后调用不管是通过nib初始化还是通过loadView方法初始化的。(2)当view被请求但是view为nil时loadView方法就会被调用一般用于使用代码来生成控件。15.在应用中加入WIFI提示框的方法如果iOS程序用到了WIFI在没有WIFI网络连接的情况下需要WIFI连接提醒只需要在info.plist中加入如下两个键值即可Applicatioin uses Wi-Fi YESSBUsesNetWork 316.通过字符串加载类名id object [[NSClassFromString(Class1) alloc] init]; 效果和下面一样id object [[Class1 alloc] init];但是如果Class1不存在上面的方法会返回nil而下面的方法会报错。17.UIWebView的使用(1)使用webView的loadRequest方法可以加载本地或者网络的html文件。(2)使用UIWebViewDelegate可以获取浏览器网页开始加载和加载完毕事件从而可以用来根据这些状态添加我们自己的UI界面比如等待视图。也可以获取浏览器当前打开网页的网址根据当前网址我们也可以有自己的UI动作。(3)通过stringByEvaluatingJavaScriptFromString方法可以在浏览器控件外部调用JavaScript脚本。18.当应用crash时捕获错误日志:(1)首先声明发生异常时的回调函数格式如下 void MyUncaughtExceptionHandler(NSException *exception) {} 通过NSException对象可以获取错误时间错误原因错误堆栈。()设置捕获回调NSSetUncaughtExceptionHandler(MyUncaughtExceptionHandler);19.MPMoviePlayerController可以播放在线视频和音频只支持Http Live Stream协议以及本地的视频音频。支持的格式仅限于苹果规定支持的格式。20.Class和#import的区别(1)import会包含这个类的所有信息包含实例变量和方法。而Class只是告诉编译器声明的是类的名称至于这个类是如何定义的先不用考虑后面再告诉你。(2)一般Class只放在interface中在实现类中同时需要用import来告诉编译器类里面的具体内容。(3)使用Class会增加编译效率。(4)使用Class可以解决循环依赖关系的问题。21.StringWithFormat和str的区别(1)str没有引用计数效果引用计数为-1调用retain也没用。(2)stringWithFormat使用自动释放创建完成时引用计数为1。22.iOS中int是4个字节short是2个字节char是1个字节long int也是4个字节。一个字节8位。23.public 、protected 、private只会影响它的子类的访问权限不会影响到类本身变量的访问权限。24.在LLVM3.0编译器中支持将实例变量写到实现文件中可实现私有的成员变量。示例代码如下implementation MyViewController{ NSString *name;}25.set方法的写法if(_value ! value){ [_value release]; _value [value retain];}26.RunLoop监视操作系统的输入源如果有事件数据runLoop就发送消息通知各个对象。它是一个一个事件处理的循环用来不停的调度工作以及处理输入事件。使用它的目的是让你的线程在有工作的时候忙于工作而没工作的时候处于休眠状态。一个UI事件一个Timer calldelegate call都会是一个RunLoop。27.自动释放池的release和drain的区别(1)release在GC(自动内存回收)环境下是一个空操作不做任何事情。(2)在引用计数环境下drain的行为和release是一样的但是在GC环境下它会调用object_collect_if_needed来触发GC。28.NSInteger和int的区别在苹果的API实现中NSInteger时一个封装它会识别当前操作系统的位数自动但会最大的类型位数不一样。封装可以查看苹果文档。29.进程间通讯的方式(iOS中基本用不到)管道信号量共享内存段消息队列以及socket。30.线程通讯的方式performSelector。比如performSelector:onThread:withObject:waitUntilDone:performSelectorOnMainThread:withObject:waitUntilDone:cancelPreviousPerformRequestsWithTarget:selector:object:31.如果一个NSArray中保存的是同种类型的对象并且想对其中的每个对象都调用一个方法可以使用makeObjectsPerformSelector:withObject:方法。32.NSTime不是一个精准的定时器当操作耗时很长或者阻塞就可能错过一个点。33.进程和线程的区别(1)线程是CPU操作的最小单元进程是系统资源分配时的最小单元。(2)线程间共享内存空间进程的内存空间时独立的。(3)进程中包含线程。34.UIScrollView主要使用了装饰器模式。Cocoa通过利用NSClipView实例装饰对象提供了滚动技术让用户控制对象的哪个部分是可见的。装饰器模式通过复合给对象添加了公共的可重用能力用于替换通过子类化添加这些能力可以在运行时添加或者配置装饰器。35.SQLite相关apisqlite3_open、sqlite3_prepare_v2、sqlite3_bind_xxx、sqlite3_step、sqlite3_column_xxx、sqlite3_finalize、sqlite3_close。36.类目Catagory(1)使用类目可以在不子类化的情况下给一个类添加功能。(2)当类目中的方法名和类中的方法名冲突时类目的方法会比类以及子类中方法的优先级高。(3)如果不提供类名则类目中定义的方法被视为必须实现的API如果缺少实现代码则编译器会报警。37.将NSLog的内容重定向至文件freopen([logFilePath cStringUsingEncoding:NSASCCIIEncoding], a, stderr);38.extern关键字使用(1)首先申明一个变量比如NSArray *resArray; 然后extern NSArray *resArray; 这样在项目里面的任何类里面都可以访问resArray这个变量。 此方法可以在一些需要共享数据的场合使用。(2)extern C表示编译生成的内部符号使用c约定大多出现在交叉C编译环境中。 __cplusplus只在c中有定义。39.从iOS4.0开始iOS类库增加了对正则表达式的支持类名为NSRegularExpression。40.从iOS5.0开始iOS类库增加了对JSON的支持类名为NSJsonSerialization。41.在编译环境中添加NSZombieEnabled变量并且置为YES可以捕获EXE_BAD_ACCESS错误能让错误提示的更精细。但是添加了此变量之后即使对象的引用计数为0内存也不会被回收应用程序的内存使用会一直增加。所以在编译完成之后要把这个变量删掉。42.自定义TableViewCell的背景颜色和选择后的颜色将TableViewCell的backgroundView和SelectBackGroundView修改成指定的View。43.tableView:willDisplayCell:forRowAtIndexPath方法这个方法在TableView要使用cell去绘制row之前调用这个方法给代理机会去设置基于状态的属性并且早于TableView比如选择状态的颜色或者背景的颜色等。44.修改UIAlterView默认的Frame高度使用委托-(void)willPresentAlertView:(UIAlertView*)alertView { alertView.frame CGRectMake(5.f,1.f,100.f,200.f);}45.由于TableView的cell重用机制导致多个图片下载事件的回调会指向同一个cell。解决办法在图像下载事件中记录当前cell的row同时将cell的tag设置为row当图片下载完毕时先判断下载事件中记录的row和cell的tag是不是一致如果一致则显示图片到cell上如果不一致则不显示图像。46.UIScrollView可以放大缩小显示的内容它有一个参数用来控制缩放的幅度zoomScale默认是1.0。47.让UIScrollView支持捏合动作(1)实现代理方法viewForZoomingInScrollView返回当前需要伸缩的视图对象比如UIImageView。当两个手指捏合时视图对象的size的值将会被改变。(2)设置scrollView的最大和最小伸缩倍数maximumZoomScale、minimumZoomScale。(3)重写scrollView的layoutSubviews方法在此方法中可以根据需要重置视图对象的x和y值后者根据视图的size属性重置scrollView的contentSize。48.ios自定义键盘UITextField有两个属性inputViewinputAccessoryView。(1)inputView含义输入界面。当你想要某输入框的输入键盘使用自定义的键盘的话可以自己创建一个键盘然后把键盘视图赋值给这个属性。当点击此输入框时弹出的键盘就是我们自己的键盘了。(2)inputAccessoryView含义辅助输入界面一般放在键盘的上方。可以增加类似于上一项、下一项、完成等功能。