iOS小集

iOS面试系列·某巨头PA金融科技公司iOS开发面试回忆

2020-05-31  本文已影响0人  小码僧

面试的时候你可能碰到面试官设的各种坑:不止喜欢问你iOS开发的一些特性和方法,更喜欢喜欢问你这些特性及方法你觉得它是怎么实现的?你觉得苹果公司为什么要这样设计?

也许面试官自己也没自己实现过,毕竟有些东西苹果为什么这样设计,若不是苹果公司的工程师无法知道。

但作为面试者,这个些问题正是拉开差距的最好办法:不一定要你亲手用C去重现苹果的机制,但可以谈谈你的见解和看法。所以,这一块最好有个准备。

1. 用法实践篇

一般,会问你怎么实现某个模块,用过哪些API,介绍下他们的用法。

1.1 你以前的项目架构是怎样的?
1.2 你是如何数据建模的?
1.3 你怎么实现字典转模型的?
- (void)setValuesForKeysWithDictionary:(NSDictionary<NSString *,id> *)keyedValues;

- (void)setValue:(id)value forUndefinedKey:(NSString *)key{}
1.4 你用过哪些动画效果?
imageContainView.frame = CGRectMake(80, 80, 200, 200); 
self.redView.transform = CGAffineTransformTranslate(self.redView.transform, 0, 0);
self.redView.transform = CGAffineTransformMakeRotation(M_PI);
self.redView.transform = CGAffineTransformMakeScale(1.5, 1.5);
/**
 *  抖动效果
 */
-(void)shakeAnimation{
    CAKeyframeAnimation *anima = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation"];//在这里@"transform.rotation"==@"transform.rotation.z"
    NSValue *value1 = [NSNumber numberWithFloat:-M_PI/180*4];
    NSValue *value2 = [NSNumber numberWithFloat:M_PI/180*4];
    NSValue *value3 = [NSNumber numberWithFloat:-M_PI/180*4];
    anima.values = @[value1,value2,value3];
    anima.repeatCount = MAXFLOAT;
    
    [_demoView.layer addAnimation:anima forKey:@"shakeAnimation"];
}
上一篇下一篇

猜你喜欢

热点阅读