Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iTeaTime(技术清谈)【003期】【代号:星战-yoda】 #4

Open
ChenYilong opened this issue Jul 16, 2019 · 0 comments
Open

iTeaTime(技术清谈)【003期】【代号:星战-yoda】 #4

ChenYilong opened this issue Jul 16, 2019 · 0 comments
Assignees

Comments

@ChenYilong
Copy link
Member

ChenYilong commented Jul 16, 2019

iTeaTime(技术清谈)【003期】【代号:星战-yoda】




下列题目可能出现以下虚拟的程序员,非实指:

  • 小地
  • 大风哥

1【问题】【iOS】iPhone在无耳机状态下,通过实体按键设置静音后,以下路径比如: 微信主tab-朋友圈-点开feed流中的小视频,可以播放声音。 通过点击头像-个人朋友圈主页,点开视频无法播放声音。即使按声音增加键也无法播放。请问这个表现不一致的现象,是feature还是bug,如果是bug你觉得是代码哪里写的有问题。写出修复代码。【难度🌟🌟🌟】【出题人 微博@iOS程序犭袁】

【答案】 :

视频播放器默认静音模式下是没有声音的,但可以控制即使是静音模式下依然有声音,显然前者设置了,后者没有设置。推测前者是被提交了bug所以fix掉了,后者使用场景比较少,所以没有被注意到。

   //忽略静音按钮
   AVAudioSession *session =[AVAudioSession sharedInstance];
   [session setCategory:AVAudioSessionCategoryPlayback error:nil];

完整代码:

- (AVAudioPlayer *)player {
if (!_player) {
NSURL *URL = [[NSBundle mainBundle] URLForResource:@"xxxx.wav"
withExtension:nil];
_player = [[AVAudioPlayer alloc] initWithContentsOfURL:URL error:nil];
AVAudioSession *autioSession = [AVAudioSession sharedInstance];
[autioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
[autioSession setActive:YES error:nil];
[_player prepareToPlay];
}

耳机场景下,统一做了处理,都可以播放视频带声音。
比如以下代码用于判断耳机状态,因为AVAudioSession是单例,对耳机优先处理即可。

- (BOOL)isHeadsetPluggedIn {  
   AVAudioSessionRouteDescription* route = [[AVAudioSession sharedInstance] currentRoute];  
   for (AVAudioSessionPortDescription* desc in [route outputs]) {  
       if ([[desc portType] isEqualToString:AVAudioSessionPortHeadphones])  
           return YES;  
   }  
   return NO;  
} 

2 【计算机常识】如果图灵未被当时的英国当局发现异常,并且图灵创业成功出任CEO,你觉得图灵和他的小伙伴们创立的公司,最类似于下面哪些?A. IBM B.Apple C.GitHub D.Google E.微软 F. 其他。开放性答案,给出相似的原因。【 难度🌟】【出题人 微博@iOS程序犭袁】

  • 【出题人提示】开放这道题是开放性题目,给出自己的见解即可,主要筛选非技术背景童鞋。
  • 【答案举例】IBM、Google在人工智能领域有所建树。图灵正是人工智能之父,非常契合。
  • 【群里的答案】【同学匿名回答】GitHub 全球最大的同性交友平台。。图灵好像是同性恋?。。。 额 这个勿喷 没有亵渎的意思。。。

3 【问题】【通用问题】大风哥看到下列人物时,马上通过鄙视链将其分为了两类,请猜想结果,并给出原因:许嵩、王小波、马云、刘强东、马化腾、奥巴马、王宝强【 难度🌟】【出题人 微博@iOS程序犭袁】

  • 【出题人提示】许嵩学过iOS,王小波是C++程序员,刘强东大学编程赚钱,马化腾也会编程,奥巴马参加过编程一小时。
  • 【群内答案】因为许嵩学习ios,所以在鄙视链的最顶端。和其他人区分开。

4【问题】【大前端】为什么Flutter会选择一门新语言dart而不是js等其他更普及的语言。 【 难度🌟】【出题人 微博@iOS程序犭袁】

【答案】Flutter团队一次采访中透露因为做flutter的团队当时和dart的团队坐的很近,为了方便沟通。哈哈,团队协作是非常重要的因素。

当然,也不可忽视 Dart 语⾔的特性:

  • Productive(⽣产⼒⾼,Dart的语法清晰明了,⼯具简单但功能强⼤)
  • Fast(执⾏速度快,Dart提供提前优化编译,以在移动设备和Web上获得可预测的⾼性能和快 速启动。)
  • Portable(易于移植,Dart可编译成ARM和X86代码,这样Dart移动应⽤程序可以在iOS、
    Android和其他地⽅运⾏)
  • Approachable(容易上⼿,充分吸收了⾼级语⾔特性,如果你已经知道C++,C语⾔,或者
  • Java,你可以在短短⼏天内⽤Dart来开发)
  • Reactive(响应式编程)

5【问题】【iOS-autolayout】一个ScrollView上有3个UILabel,每个label字数不固定,类似字数很多的那种,要求上下依次排列,当文字超出ScrollView的时候可以滑动,左右不能滚动,上下可滚动。【难度🌟🌟🌟】【出题人群内大佬:@起点】

【出题人提示】就是label的宽度设置跟scrollView等宽,最底下的label底部要跟scrollView的底部约束上就可以了。
考察的主要是scrollView的约束问题。scrollView的约束主要是从内部撑开宽度跟高度。

【答案】

三个label 那个,就是放了个scrollview 然后里面放三个label,从上往下边距全部约束为0,然后label 宽度与scrollview相同,最下面那个label距离底部scrollview为0。(在内部无需多放view)

  1. 在 Scrollview 添加⼀个 ContainView
  2. ContentView 完全覆盖 Scrollview
  3. ContainView 上添加了三个 Label。View 的 bottom 和 第三个 Label 的 bottom 做约束。
  4. 三个 Label 互相做间距和宽的约束,不约束⾼

    3441556378312_ pic_hd
  5. 通过将 Scrollview 的 ContentSize 和 ContainView 的 size 保持⼀致。
- (void)viewDidAppear:(BOOL)animated {
       [super viewDidAppear:animated];
       [self.contentView layoutIfNeeded];
        self.scrollview.contentSize =
       CGSizeMake(CGRectGetWidth(self.contentView.frame), CGRectGetHeight(self.contentView.frame));
}

Demo 如下:

ScrollViewDemo.zip

Demo对应链接 手机端查看
标题:iTeaTime(技术清谈)【003期】【代号:星战-yoda】
链接:#4

6【问题】【iOS】UIView 旋转动画(CAKeyframeAnimation),绕中心点旋转90度后,过程中frame和 bounds 是如何改变的。【难度🌟🌟🌟】【出题人 微博@iOS程序犭袁】

【答案】frame 改变, bounds不改变。注意center也不会影响。


原文链接 手机端阅读
标题:iTeaTime(技术清谈)【003期】【代号:星战-yoda】
链接:#4

Posted by Posted by 微博@iOS程序犭袁 & 公众号@iTeaTime技术清谈
原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0


One more thing...

【非礼勿视】以下为彩蛋部分,建议28岁以上男性观看


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant