面试题集锦2(更新)

2016-09-18  本文已影响0人  彼岸的黑色曼陀罗

1.xcode5和xcode7区别

2.pch文件原理

3.UIApplication常见功能

4.程序完整启动流程

5.UIWindow是什么?

6.手动创建窗口的步骤

7.makeKeyAndVisable做了哪些事情?

8.如何从storyboard中加载控制器?

9.initWithNibName的加载过程?

10.LoadView作用以及LoadView的注意点?

11.UIPickerView是什么控件?基本用法是怎样的?

12.KVC底层实现?

13.导航控制器的view的结构是怎样的?

14.导航控制器push做了哪些事情?

15.导航控制器pop做了哪些事情?

16.如何设置导航条的内容?

17.导航控制器pop操作有哪些?

18.文本框如何拦截用户输入?

19.如何自定义键盘?

20.导航控制器的作用?

21.如何通过storyboard进行控制器之间的跳转?

22.控制器view的生命周期

23.segue自动跳转和手动跳转有什么区别?

24.UIAlertController使用步骤

25.数据顺传的步骤

26.代理传递的过程

27.如何取消tableView多余的线

28.在跳转之前会执行什么方法?

29.performSegueWithIdentifier:做了哪些事情?

30.延迟执行代码方法?

31.ios当中的存储方式有哪些?

32.简述ios应用沙盒的概念?

33.沙盒目录结构

34.如何获取沙盒目录?

35.NSUserDefaults的实现是什么存储?一般用来存什么?

36.归档一般用来保存什么?使用时有哪些注意点?

37.initWithCoder,什么时候调用?与awakeFromNib的区别?

38.使用导航控制器有哪些注意点?

39.UITabBarController的基本使用

40.如何设置TabBar的内容?

41.事件的传递过程?(掌握)

42.一个控件什么情况下不接收事件?

43.如何寻找最适合的view?

44.事件的响应过程

45.如何寻找上一个响应者

46.transform带Make与不带Make的区别?

47.如何添加手势

48.如何同时支持多个手势

49.hitTest:方法的作用以及什么时候调用

50.pointInSide方法的作用以及有什么注意点?

51.什么是图形上下文?

52.如何自定义UIView,步骤是什么?

53.DrawRect方法作用?什么时候调用?

54.setNeedsDisplay方法的作用

55.如何画文字?

56.如果画图片?

57.如何使用CADisplayLink添加定时器

58.什么是上下文状态栈?

59.如何保存和恢复上下文状态

60.上下文矩阵操作有哪些?

61.如何生成一张图片?

62.如何把图片转成二进制流?

63.如何把一个路径设置为裁剪区域?

64.如何擦除上下文当中的某一个区域?

获取当前的上下文.
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    把UIImageV上的图片渲染到上下文当中. 
    [self.imageV.layer renderInContext: ctx];
    设置擦除区域 
    CGContextClearRect(ctx, rect);

65.如何判断点在不在某个区域当中

判断手指当前点在不在按钮上.
        if (CGRectContainsPoint(btn.frame, point)) { 
            在按钮上.返回当前按钮 
            return btn;
        } 

66.如何把图片保存到系统相册?

UIImageWriteToSavedPhotosAlbum(newImage,self,@selector(image:didFinishSavingWithError: contextInfo:),nil);
注意:图片保存完成时调用的方法必须得是image:didFinishSavingWithError: contextInfo:

67.如何从系统相册当中选择一张照片?

弹出系统相册
    UIImagePickerController *vc = [[UIImagePickerController alloc] init];
    设置照片的来源 
    vc.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    vc.delegate = self;
    Modal出来系统相册
    [self presentViewController:vc animated:YES completion:nil];
调用代理方法:-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

68.如何办到一个图片长按的时候闪一下?

69.抽取方法的思路?

70.什么情况下自定义类?

71.什么是CALayer?

72.如何自定义Layer?

CALayer *layer = [CALayer layer];
layer.frame = CGRectMake(50, 50, 100, 100);
layer.backgroundColor = [UIColor redColor].CGColor;
[self.view.layer addSublayer:layer];

73.UIView和CALayer都能够显示东西,该怎么选择?

74.layer的CATransform3D属性是干什么用的?

旋转
x,y,z 分别代表x,y,z轴.
CATransform3DMakeRotation(M_PI, 1, 0, 0);
平移
CATransform3DMakeTranslation(x,y,z)
缩放
CATransform3DMakeScale(x,y,z);
可以通过KVC的方式进行设置属性.
但是CATransform3DMakeRotation它的值,是一个结构体, 所以要把结构转成对象.
NSValue *value = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI, 1, 0, 0)];
[_imageView.layer setValue:value forKeyPath:@"transform.scale"];

75.position和anchorPoint是CALayer的两个属性,作用?

76.什么是隐式动画?

77.如何获取当前时间?

78.ios中所有的旋转和缩放都是绕着哪个点进行的?

79.CoreAnimation的使用步骤

80.UIView和核心动画对比?

81.如何让按钮成为选中状态?取消按钮的高亮状态?

82.如何从一张大图当中截取某一部分为图片?

83.如何让一张图片只显示上半部分或者下半部分?

84.如何设置渐变效果?

85.在手指拖动的过程当中,松开手指时,有一个动画反弹回去的效果是如何做到的?

86.如何使用复制层?

87.如何使用形状图层?

- (CAShapeLayer *)shape{
   if(_shape == nil){
   //创建形状图层
   CAShapeLayer *shape = [CAShapeLayer layer];
   //设置形状图层的填充颜色
   shape.fillColor = [UIColor redColor].CGColor;
   self.shape = shape;
   //把形状图层添加到当前按钮的父层当中
   [self.superview.layer insertSublayer:shape atIndex:0];
   _shape = shape;
   }
   return _shape;  
}

88.拖动的时候如何让它有一个立体的效果?

89.如何通过layer改变UIView的外观?

90.position和anchorPoint如何使用?

91.为什么要自定义类?

92.自定义tabBar的实现思路

93.Block作用?

94.Block的定义方式?

返回值类型(^Block名称)(参数) = ^(参数){
   保存的代码
}

95.Block如何当做参数传递?

96.如何进行解耦?

97.如何自定义遮盖?

98.如何显示与隐藏pop菜单?

99.如何全局修改导航条的属性?

100.分类中如何添加属性,应该注意哪些?

101.initialize

102.字符串是用strong还是用copy

    - (void) setName:(NSString *)name{
    _name = [name copy]
    }   

103.如何通过代码拉伸图片?

//取出背景图片
UIImage *image = self.loginBtn.currentBackgroundImage;
//拉伸图片的中间区域
UIImage * stretchImage = [image stretchImageWithLeftCapWidth:image.size.width *0.5 topCapHeight:image.size.height *0.5]
[self.loginBtn setBackgroundImage:stretchImage forState:UIControlStateNormal]

104.static关键字的作用?

105.如何全局修改返回按钮?

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {
if (self.childViewControllers.count != 0) {
         NSLog(@"非根控制器");
        //设置返回按钮
        viewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageWithOriImageName:@"NavBack"] style:0 target:self action:@selector(back)];
        
        //重写了系统返回,那么系统的侧滑返回功能就会失效
        self.interactivePopGestureRecognizer.delegate = nil;
        
        //当push时隐藏系统底部Tabbar
        viewController.hidesBottomBarWhenPushed = YES;
    }
[super pushViewController:viewController animated:animated];
}

106.如何恢复侧滑返回功能?

107.如何添加全屏幕滑动返回?

108.通过scrollView实现无限轮播思路?

1.确定图片的宽度等于scrollViewW
2.设置scollView 的contentSize (3 * W,H)
3.把scollView的offset.x设置为一个W
4.创建两个imageV, centerImageV * reuseImageV
5.设置centerImageV .x = W
6. reuseImageV.x =  maxX(centerImageV .frame)
7.当scorllView滚动时,判断offset.x是否大于2 * W
   立马把offset.x设置为W
交换两个ImageView的位置
8.交换两个指针

109.UICollectionViewController使用的注意点?

110.流水布局属性有哪些?

 //流水布局
    UICollectionViewFlowLayout *flowL = [[UICollectionViewFlowLayout alloc] init];
    //设置每一个格子的大小
    flowL.itemSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height);
    //设置最小行间距
    flowL.minimumLineSpacing = 0;
    //设置每个格子之间的间距
    flowL.minimumInteritemSpacing = 0;
    
    //设置滚动的方向
    flowL.scrollDirection = UICollectionViewScrollDirectionHorizontal;

111.initialize方法的作用?

112.新特性业务逻辑是怎样的?

113.如何切换根控制器?

114.为什么要抽取业务类?

115.KVO内部实现原理?

116.如何把一个字符串转成类名?

NSClassFromString(<#NSString * _Nonnull aClassName#>) 通过类型,就可以去创建一个对象.

117.block使用的注意点有哪些?

118.UITableView优化技巧?

119.如何解决通过drawRect方法进行绘制内存增大问题?

120.如何高性能的给UIImageView加一个圆角?

121.block和weak修饰符的区别?

122.如何封装一个view?

上一篇 下一篇

猜你喜欢

热点阅读