iOS-常见问题

iOS-常见问题

问题一:

咱们在写程序的时候,屏幕的宽高咱们不能写固定,例如写成320,480之类的,由于咱们要适配不一样的手机。经常使用的一种方法是在 .pch文件中设置宽高,由于.pch是一个预编译文件,在全局都能访问到。windows

#define ScreenHeight [UIScreen mainScreen].bounds.size.hight;数组

#define ScreenWidth [UIScreen mainScreen].bounds.size.width;网络

预编译文件建立: app

    1. 建立header文件
    2. 在Header内进行宏定义
    3. buildSetting里面搜索prefix, 找到prefix header, 双击value, 把header文件拖进来, 设置为预编译文件
    注: 设置路径宏   $SRCROOT表明工程文件路径

问题二:

这个问题比较简单,彻底算不上技巧,可是有时咱们会忽略这个用法。就是给UIView设置背景图片。函数

 view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@background.png"]]; post

问题三:

咱们的图片是方形的,咱们想让它以圆形或者椭圆相似的形状在界面上显示。ui

_image = [[UIImageView alloc]initWithFrame:CGRectMake(0,0,80,80)]; _image.layer.cornerRadius = 40;//大小不一样,形状不一样 _image.clipsToBounds = YES;

问题四:url

如何获取主窗口的三种方法。spa

UIApplication *app=[UIApplication shareApplication]; 1.UIWindow *window = app.keyWindow; 2.UIWindow *window = app.delegate.window; 3.UIWindow *window = [app.windows objectAtIndex:0];

固然咱们也可使用连写的方法:好比:UIWindow *window = [UIApplication shareApplication].delegate.window;代理

问题五:

咱们有时候不当心修改了系统的API,或者其它的一些操做,出现了如下问题该怎么办?

错误信息:fatal error :file /Application ……….

Note: after modifying system headers, please delete the module cache at /Users  …..

解决办法:前往/Users….这个文件夹,删除里面的文件,而后clean一下程序便可解决.

问题六:

咱们如何让定时器暂停和开始,并非开启和关闭。

NSTimer *timer = [NSTimer sch……]; [timer setFireDate :[NSDate distantFuture]];//暂停 [timer setFireDate :[NSDate distantPass]]//开始

问题七:

在网络请求中,若是请求体中有汉字的话,请求会出错,怎样解决?

假设请求体为:NSString *urlString= @“http://v.juhe.cn/weather/index?cityname=北京”;

由于有汉字字符,请求会出错。处理办法:

 urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

问题八:

如何让咱们的图片放大不变形。

_image = [[UIImage imageNamed:@"a.png"]stretchableImageWithLeftCapWidth:20 topCapHeight:10];

问题九:

ARC和非ARC混编。

若是你的项目中使用的是非ARC,导入的ARC代码的文件,须要在ARC模式的文件代码中加入-fobjc-arc标签

若是你的项目中使用的是ARC模式,则为非ARC模式的代码文件加入-fno-objc-arc标签

添加标签方法:target->build phases->compile sources  ,双击对应的 .m文件,在弹出框中输入标签。 

问题十:

在自定义xib中cell的时候,UIImageView的图形跟定义的大小不匹配,可能按照原图片显示。

可能出现的问题是:UIImageView的命名为imageView,这个名字和系统的名字冲突,图片不能按预期的显示。

问题十一:

uitableview代理不调用。

常见的是没有设置代理。

还有一种状况是继承错误,通常来讲是继承UIViewController,若是继承关系写错,代理方法不会调用。

问题十二:

如何找到xib上的view,可能有多个,能够用数组接收。

NSArray *nib = [[NSBundle mainBundle]loadNibNamed:@"CustomView" owner:self options:nil]; //获得第一个UIView  UIView *tmpCustomView = [nib objectAtIndex:0];  

问题十三:

根据文字内容,肯定文字占的区域大小

CGRect rect = [str boundingRectWithSize:CGSizeMake(300, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15]} context:nil];

问题十四:

在UIButton上添加一个UIView,会使得UIButton的点击事件不能响应,解决办法是将UIView的可交互性改成NO.

问题十五:

若是界面中有ScrollView,而且界面中有导航条,视图控制器会默认给scrollview设置一个64偏移。

咱们可使用self.automaticallAdjustsScrollViewInsets = NO,scrollview不会偏移。

tabbar高度49,导航加状态栏高度64.

问题十六:

咱们可使用下面的方法打印出所在的类,和函数:

 NSLog(@"%s",__FUNCTION__); 

问题十七:

语法糖基本写法:

 NSString *str = @"123"; NSDictionary *dict = @{@"name":@"wyg",@"age":@"12",@"sex":@"boy"}; NSArray *arr = @[@"1",@"2"]; NSString *st = arr[1]; NSNumber *intNumber = @123; NSNumber *boolNumber = @NO; 

问题十八:

在建立了UIScrollView的时候,打印其subViews,发现多了两个,是由于将水平条和垂直条加上了,将其属性设置为NO便可。
相关文章
相关标签/搜索