整理面试问题iOS

1.如何添加手势操作。

 

  我们以在view上来举例

 

    
    //创建一个view
    
    UIView *tapView=[UIView new];
    tapView.frame=CGRectMake(0, 0, kWidth, kHeight);
    tapView.userInteractionEnabled = YES;//打开点击事件
    [self.view addSubview:tapView];
    
    //添加手势
    UITapGestureRecognizer * tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(event:)];
    
    [tapView addGestureRecognizer:tapGesture];
    
#pragma mark  点击事件

-(void)event:(UITapGestureRecognizer *)recognizer{
    
    
}

 

2.app性能的测试方法有哪些。  

 

  Xcode --> Open Developer Tool -->Instrumnets  

 

 

2.测试fps 值 这个我们做列表刷新的时候就会经常用这个来测试  CADisplayLink

 

_displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(displayLinkTick:)];
       [_displayLink setPaused:YES];
       [_displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];

//这个方法的执行频率跟当前屏幕的刷新频率是一样的,屏幕每渲染刷新一次,就执行一次,那么1秒的时长执行刷新的次数就是当前的FPS值
- (void)displayLinkTick:(CADisplayLink *)link{
   
   //     duration 是只读的, 表示屏幕刷新的间隔 = 1/fps
   //     timestamp 是只读的, 表示上次屏幕渲染的时间点
   //    frameInterval 是表示定时器被触发的间隔, 默认值是1, 就是表示跟屏幕的刷新频率一致。
   //    NSLog(@"timestamp= %f  duration= %f frameInterval= %f",link.timestamp, link.duration, frameInterval);
   
   //初始化屏幕渲染的时间
   if (_beginTime == 0) {
       _beginTime = link.timestamp;
       return;
   }
   //刷新次数累加
   _count++;
   //刚刚屏幕渲染的时间与最开始幕渲染的时间差
   NSTimeInterval interval = link.timestamp - _beginTime;
   if (interval < 1) {
       //不足1秒,继续统计刷新次数
       return;
   }
   //刷新频率
   float fps = _count / interval;
   
   if (self.FPSBlock != nil) {
       self.FPSBlock(fps);
   }

   //1秒之后,初始化时间和次数,重新开始监测
   _beginTime = link.timestamp;
   _count = 0;
}

 

3.说一个你独立开发的项目中你遇到的困难,以及你是如何解决的

 

 

 

 

猜你喜欢

转载自www.cnblogs.com/yangqinoak/p/10432102.html