2. iOS面试题UI篇

2020年6月最新iOS面试题总结(答案篇) 之前发了这篇iOS面试总结(2020年6月),没想到挺受大家欢迎,本来是没打算为它写答案,但有几个人建议我最好出一篇答案,提的人多了我就答应了下来。因为最近比较忙,断断续续总算补完了,就有了这篇文章,希望它对大家还有用处。这些都属于参考答案,如果大家感觉有不对不准确的地方也欢迎指出,我会及时更新。 关于面试题 打个比方,如果把找工作理解成考大学,面试就是高考,市面上的“真题”就是模拟试卷。我们会很容易倾向于在面试前寻找对应公司的面试“真题”,重点准备,期待“押题”成功。但实际上,即使面试同一家公司,它会有. 阅读详情

Size Classes 具体使用

  • 对屏幕进行分类

UIView和CALayer是什么关系?

  • UIView显示在屏幕上归功于CALayer,通过调用drawRect方法来渲染自身的内容,调节CALayer属性可以调整UIView的外观,UIView继承自UIResponder,比起CALayer可以响应用户事件,Xcode6之后可以方便的通过视图调试功能查看图层之间的关系
  • UIView是iOS系统中界面元素的基础,所有的界面元素都继承自它。它内部是由Core Animation来实现的,它真正的绘图部分,是由一个叫CALayer(Core Animation Layer)的类来管理。UIView本身,更像是一个CALayer的管理器,访问它的跟绘图和坐标有关的属性,如frame,bounds等,实际上内部都是访问它所在CALayer的相关属性
  • UIView有个layer属性,可以返回它的主CALayer实例,UIView有一个layerClass方法,返回主layer所使用的类,UIView的子类,可以通过重载这个方法,来让UIView使用不同的CALayer来显示,如:
- (class) layerClass {

  // 使某个UIView的子类使用GL来进行绘制

 return ([CAEAGLLayer class]);

}
  • UIView的CALayer类似UIView的子View树形结构,也可以向它的layer上添加子layer,来完成某些特殊的显示。例如下面的代码会在目标View上敷上一层黑色的透明薄膜。
grayCover = [[CALayer alloc]init];
grayCover.backgroudColor = [[UIColor blackColor]colorWithAlphaComponent:0.2].CGColor;
[self.layer addSubLayer:grayCover];
  • 补充部分,这部分有深度了,大致了解一下吧,UIView的layer树形在系统内部被系统维护着三份copy

  • 逻辑树,就是代码里可以操纵的,例如更改layer的属性等等就在这一份

  • 动画树,这是一个中间层,系统正是在这一层上更改属性,进行各种渲染操作

  • 显示树,这棵树的内容是当前正被显示在屏幕上的内容

  • 这三棵树的逻辑结构都是一样的,区别只有各自的属性

loadView的作用?

  • loadView用来自定义view,只要实现了这个方法,其他通过xib或storyboard创建的view都不会被加载

• 看懂控制器view创建的这个图就行

ViewControllerfiview olft.png

IBOutlet连出来的视图属性为什么可以被设置成weak?

  • 因为父控件的subViews数组已经对它有一个强引用

IB中User Defined Runtime Attributes如何使用?

  • User Defined Runtime Attributes是一个不被看重但功能非常强大的的特性,它能够通过KVC的方式配置一些你在interface builder中不能配置的属性
  • 当你希望在IB中作尽可能多得事情,这个特性能够帮助你编写更加轻量级的viewcontroller

沙盒目录结构是怎样的?各自用于那些场景?

  • Application:存放程序源文件,上架前经过数字签名,上架后不可修改

  • Documents:常用目录,iCloud备份目录,存放数据

  • Library

  • Caches:存放体积大又不需要备份的数据

  • Preference:设置目录,iCloud会备份设置信息

  • tmp:存放临时文件,不会被备份,而且这个文件下的数据有可能随时被清除的可能

pushViewController和presentViewController有什么区别

  • 两者都是在多个试图控制器间跳转的函数
  • presentViewController提供的是一个模态视图控制器(modal)
  • pushViewController提供一个栈控制器数组,push/pop

请简述UITableView的复用机制

  • 每次创建cell的时候通过dequeueReusableCellWithIdentifier:方法创建cell,它先到缓存池中找指定标识的cell,如果没有就直接返回nil
  • 如果没有找到指定标识的cell,那么会通过initWithStyle:reuseIdentifier:创建一个cell
  • 当cell离开界面就会被放到缓存池中,以供下次复用

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

  • 不好的解决方案

  • 使用下面的方式会强制Core Animation提前渲染屏幕的离屏绘制, 而离屏绘制就会给性能带来负面影响,会有卡顿的现象出现

self.view.layer.cornerRadius = 5;
 self.view.layer.masksToBounds = YES;
  • 正确的解决方案:使用绘图技术
- (UIImage *)circleImage

{

  // NO代表透明

 UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0);

  // 获得上下文

 CGContextRef ctx = UIGraphicsGetCurrentContext();

  // 添加一个圆

 CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);

 CGContextAddEllipseInRect(ctx, rect);

  // 裁剪

 CGContextClip(ctx);

  // 将图片画上去

 [self drawInRect:rect];

 UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

  // 关闭上下文

 UIGraphicsEndImageContext();

 return image;

}
  • 还有一种方案:使用了贝塞尔曲线"切割"个这个图片, 给UIImageView 添加了的圆角,其实也是通过绘图技术来实现的
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];

imageView.center = CGPointMake(200, 300);

UIImage *anotherImage = [UIImage imageNamed:@"image"];

UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, NO, 1.0);

[[UIBezierPath bezierPathWithRoundedRect:imageView.bounds

 cornerRadius:50] addClip];

[anotherImage drawInRect:imageView.bounds];

imageView.image = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

[self.view addSubview:imageView];

使用drawRect有什么影响?

  • drawRect方法依赖Core Graphics框架来进行自定义的绘制
  • 缺点:它处理touch事件时每次按钮被点击后,都会用setNeddsDisplay进行强制重绘;而且不止一次,每次单点事件触发两次执行。这样的话从性能的角度来说,对CPU和内存来说都是欠佳的。特别是如果在我们的界面上有多个这样的UIButton实例,那就会很糟糕了
  • 这个方法的调用机制也是非常特别. 当你调用 setNeedsDisplay 方法时, UIKit 将会把当前图层标记为dirty,但还是会显示原来的内容,直到下一次的视图渲染周期,才会将标记为 dirty 的图层重新建立Core Graphics上下文,然后将内存中的数据恢复出来, 再使用 CGContextRef 进行绘制

描述下SDWebImage里面给UIImageView加载图片的逻辑

  • SDWebImage 中为 UIImageView 提供了一个分类UIImageView+WebCache.h, 这个分类中有一个最常用的接口sd_setImageWithURL:placeholderImage:,会在真实图片出现前会先显示占位图片,当真实图片被加载出来后在替换占位图片

  • 加载图片的过程大致如下:

  • 首先会在 SDWebImageCache 中寻找图片是否有对应的缓存, 它会以url 作为数据的索引先在内存中寻找是否有对应的缓存

  • 如果缓存未找到就会利用通过MD5处理过的key来继续在磁盘中查询对应的数据, 如果找到了, 就会把磁盘中的数据加载到内存中,并将图片显示出来

  • 如果在内存和磁盘缓存中都没有找到,就会向远程服务器发送请求,开始下载图片

  • 下载后的图片会加入缓存中,并写入磁盘中

  • 整个获取图片的过程都是在子线程中执行,获取到图片后回到主线程将图片显示出来

设计个简单的图片内存缓存器

  • 类似上面SDWebImage实现原理即可
  • 一定要有移除策略:释放数据模型对象

控制器的生命周期

  • 就是问的view的生命周期,下面已经按方法执行顺序进行了排序
// 自定义控制器view,这个方法只有实现了才会执行

- (void)loadView

{

 self.view = [[UIView alloc] init];

 self.view.backgroundColor = [UIColor orangeColor];

}

// view是懒加载,只要view加载完毕就调用这个方法

- (void)viewDidLoad

{

 [super viewDidLoad];

 NSLog(@"%s",__func__);

}

// view即将显示

- (void)viewWillAppear:(BOOL)animated

{

 [super viewWillAppear:animated];

 NSLog(@"%s",__func__);

}

// view即将开始布局子控件

- (void)viewWillLayoutSubviews

{

 [super viewWillLayoutSubviews];

 NSLog(@"%s",__func__);

}

// view已经完成子控件的布局

- (void)viewDidLayoutSubviews

{

 [super viewDidLayoutSubviews];

 NSLog(@"%s",__func__);

}

// view已经出现

- (void)viewDidAppear:(BOOL)animated

{

 [super viewDidAppear:animated];

 NSLog(@"%s",__func__);

}

// view即将消失

- (void)viewWillDisappear:(BOOL)animated

{

 [super viewWillDisappear:animated];

 NSLog(@"%s",__func__);

}

// view已经消失- (void)viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; NSLog(@"%s",__func__); } // 收到内存警告- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; NSLog(@"%s",__func__); } // 方法已过期,即将销毁view- (void)viewWillUnload { } // 方法已过期,已经销毁view- (void)viewDidUnload {}

你是怎么封装一个view的

  • 可以通过纯代码或者xib的方式来封装子控件
  • 建立一个跟view相关的模型,然后将模型数据传给view,通过模型上的数据给view的子控件赋值
/**

* 纯代码初始化控件时一定会走这个方法

 */

- (instancetype)initWithFrame:(CGRect)frame

{

 if(self = [super initWithFrame:frame])

 {

 [self setup];

 }

  return  self;

}
  • 通过xib初始化控件时一定会走这个方法
- (id)initWithCoder:(NSCoder *)aDecoder

{

 if(self = [super initWithCoder:aDecoder])

 {

 [self setup];

 }

  return  self;

}

- (void)setup

{

  // 初始化代码

}

如何进行iOS6、7的适配

  • 通过判断版本来控制,来执行响应的代码
  • 功能适配:保证同一个功能在6、7上都能用
  • UI适配:保证各自的显示风格

// iOS版本为7.0以上(包含7.0)

define iOS7 ([[UIDevice currentDevice].systemVersion doubleValue]>=7.0)

如何渲染UILabel的文字?

  • 通过NSAttributedString/NSMutableAttributedString(富文本)

UIScrollView的contentSize能否在viewDidLoad中设置?

  • 能

  • 因为UIScrollView的内容尺寸是根据其内部的内容来决定的,所以是可以在viewDidLoad中设置的

  • 补充:(这仅仅是一种特殊情况)

  • 前提,控制器B是控制器A的一个子控制器,且控制器B的内容只在控制器A的view的部分区域中显示

  • 假设控制器B的view中有一个UIScrollView这样一个子控件

  • 如果此时在控制器B的viewDidLoad中设置UIScrollView的contentSize的话会导致不准确的问题

  • 因为任何控制器的view在viewDidLoad的时候的尺寸都是不准确的,如果有子控件的尺寸依赖父控件的尺寸,在这个方法中设置会导致子控件的frame不准确,所以这时应该在下面的方法中设置子控件的尺寸

-(void)viewDidLayoutSubviews;

触摸事件的传递

  • 触摸事件的传递是从父控件传递到子控件

  • 如果父控件不能接收触摸事件,那么子控件就不可能接收到触摸事件

  • 不能接受触摸事件的四种情况

  • 不接收用户交互,即:userInteractionEnabled = NO

  • 隐藏,即:hidden = YES

  • 透明,即:alpha <= 0.01

  • 未启用,即:enabled = NO

  • 提示:UIImageView的userInteractionEnabled默认就是NO,因此UIImageView以及它的子控件默认是不能接收触摸事件的

* 如何找到最合适处理事件的控件:

  • 首先,判断自己能否接收触摸事件

  • 可以通过重写hitTest:withEvent:方法验证

  • 其次,判断触摸点是否在自己身上

  • 对应方法pointInside:withEvent:

  • 从后往前(先遍历最后添加的子控件)遍历子控件,重复前面的两个步骤

  • 如果没有符合条件的子控件,那么就自己处理

事件响应者链

  • 如果当前view是控制器的view,那么就传递给控制器

  • 如果控制器不存在,则将其传递给它的父控件

  • 在视图层次结构的最顶层视图也不能处理接收到的事件或消息,则将事件或消息传递给UIWindow对象进行处理

  • 如果UIWindow对象也不处理,则将事件或消息传递给UIApplication对象

  • 如果UIApplication也不能处理该事件或消息,则将其丢弃

  • 补充:如何判断上一个响应者

  • 如果当前这个view是控制器的view,那么控制器就是上一个响应者

◦ 如果当前这个view不是控制器的view,那么父控件就是上一个响应者

Application.png

如何实现类似QQ的三角形头像

  • Quartz2D
  • 使用coreGraphics裁剪出一个三角形

核心动画里包含什么?

  • 基本动画
  • 回头自己总结吧

如何使用核心动画?

  • 创建
  • 设置相关属性
  • 添加到CALayer上,会自动执行动画
iOS面试题--UI篇 Size Classes 具体使用 对屏幕进行分类 UIView和CALayer是什么关系? UIView显示在屏幕上归功于CALayer,通过调用drawRect方法来渲染自身的内容,调节CALayer属性可以调整UIView的外观, UIView继承自UIResponder,比起CALayer可以响应用户事件,Xcode6之后可以方便的通过视图调试功能查看图层之间的关系 UIView是iOS系统中界面元素的基础,所有的界面元素都继承自它。它内部是由Core Animation来实现的,它真正的绘图 阅读详情

相关推荐

④(iOS篇)、《史上最全iOS八股文面试题》2022年,金三银四我为你准备了,iOS《1000条》笔试题以及面试题(包含答案)。带面试你过关斩将,(赶紧过来背iOS八股文)

iOS面试1000题以及答案-笔试题-④iOS篇

慢慢来就很快。 3201

iiOS 底层原理 - Uiview 与 Calyer 相关视图知识

图像显示原理 1. UIView 和 CALayer的区别 view是layer的代理对象;view负责管理layer,layer负责渲染; view初始化的时候默认会创建一个layer;设置view的frame和bounds等内部其实是修改layer对应属性。 两者最明显的区别是View可以接受并且处理事件,而Layer不可以。 所有从UIView派生出来的UIKit类,都直接或者间接的继承自UIResponder类,所以都会有响应事件。 而CALayer直接继承NSObject,并没有相应的处理事

Jul7day的博客 765

iOS 面试题汇总

1. 简单介绍下NSURLConnection类及+ sendSynchronousRequest:returningResponse:error:与– initWithRequest:delegate:两个方法的区别? 答: NSURLConnection主要用于网络访问,其中+ sendSynchronousRequest:returningResponse:error:是同步访问数据,即当...

gsl111000的博客 1万+

2019 iOS面试题---UI相关:事件传递,图像显示,性能优化,离屏渲染

2019 iOS面试题大全—全方面剖析面试 UIView与CALayer 事件传递与视图响应链 图像显示原理 UI卡顿掉帧原因 滑动优化方案 UI绘制原理 离屏渲染 一、UIView与CALayer 0C9E738E-48C6-4960-BAC5-0FC23F0DB3C8.png <单一职责原则> UIView为CALayer提供内容,以及负责处理触摸等事件,参与响应链 CALa...

xjGitChat的博客 730

2021年大厂iOS 面试题 - 前篇

Swift好多坑,一个人填不来,怎么办 问身边同事吧,又怕被暗笑技术差劲 1、如何追踪app崩溃率,如何解决线上闪退 当iOS设备上的App应用闪退时,操作系统会生成一个crash日志,保存在设备上。crash日志上有很多有用的信息,比如每个正在执行线程的完整堆栈跟踪信息和内存映像,这样就能够通过解析这些信息进而定位crash发生时的代码逻辑,从而找到App闪退的原因。通常来说,crash产生来源于两种问题:违反iOS系统规则导致的crash和App代码逻辑BUG导致的crash,下面分别对他们进行.

原来是泽镜的博客 1297

iOS面试汇总[含面经,面试讲解面试题等](栏目持续更新)

整理的一些iOS面试相关问题,持续更新,敬请关注 一定不要忘了关注啊(不说三遍但是同样重要)记得看消息 你关注 我送礼:感谢各位的观看,别忘了点个赞,同时我在这里还给各位准备了你们专属资料,关注我,获得私信进裙了解,或者直接进群有管理员主动找你,回复[7]之后,你就能拿到各自想要的资料。别忘了去领取啊 前言:最近应该有很多小伙伴去跳槽面试的吧,相信各位有的已经顺利收到offer了,而有些则是碰壁了,那么我在这里给大家准备了相关面试资料,还有相关算法资料。想了解的可找我拿 有资料需求的可以了解下,

henry_lei的博客 630

2022iOS面试题集锦(iOS interview)

面试一 1、#include 和 #import的区别 主要知识点:递归循环引入的问题 导入的文推荐格式,均可以导入 C/C++头文件,#include还能导入更多格式类似txt 导入的方式:#include是将文件内容复制到指令处 导入文件的查找方式:#include当前文件所处文件夹,再找不到就从当前文件夹的父文件夹查找,再不行就是往上推,再找不到就IDE设置的查找路径,再找不到就从系统环境变量配置的地址。 再讲讲"" && <> 的异同。 2、初始化返回值 id 和 ins

jeversonjee's blog 4097

ADS谐波平衡仿真自动优化报错?三步搞定HB控件设置(附常见错误排查)

本文针对ADS谐波平衡仿真在自动优化中常见的报错问题,提供了三步核心排查法。首先检查并禁用HB控件中可能导致冲突的小信号仿真模式,其次合理化仿真频率与扫描参数设置,最后审视优化变量与目标的定义。通过精准配置HB控件以适配自动优化流程,能有效解决大多数仿真失败问题,确保非线性电路设计顺利进行。

c2d3e4f的博客 786

一个iOS程序员的BAT面试经验

一个iOS程序员的BAT面试经验

观察者 5793

TortoiseGit提示No supported authentication methods available错误

一、问题 在使用TortoiseGit与远程仓库进行同步代码的时候提示如下错误,即:没有支持认证的方法可用。而GitBash却可以正常使用,不受影响。 通过调查,发现应该是TortoiseGit远程仓库的公匙无法和本地的密匙进行匹配认证造成的(主要是TortoiseGit缺少本地密匙)。由于TortoiseGit的默认网络SSH client是TortoiseGitPlink.exe,如下图所示。因此主要有两种方式来解决该问题: 不修改TortoiseGit的默认网络SSH client,此时需要为To

Jeffxu_lib的博客 2万+

WRF气象建模实战:如何为JRA55非标准数据定制Vtable文件?

本文详细介绍了为WRF气象模型定制Vtable文件以支持JRA55非标准数据(特别是积雪数据)的完整实战流程。文章深入解析了WPS数据流中Vtable的核心映射逻辑,提供了从GRIB文件诊断、Vtable编写到METGRID.TBL调优的通用方法论,帮助用户解决非标准气象数据源适配的关键技术挑战。

c8d9e0f1的博客 673

UI设计师求职中常被问到的13个面试题及答案总结

UI设计是目前公认的新兴高薪职业,吸引了人们的广泛加入。想要求职拿高薪,掌握专业技能之余,我们还要重视面试。有人好奇UI设计师面试常见问题有哪些?接下来就给大家分享一下UI设计师求职中常被问到的13个面试题。 1、UI和UE最大的区别在哪里? UI即User Interface,用户界面,业界一般指的是界面视觉设计。UE即User Experience,用户体验。UE的范围更大一些,不仅仅包含视...

xiaoxijing的博客 1万+

【TC3xx芯片】TC3xx芯片电源管理系统PMS详解

本文主要介绍了TC3xx芯片的电源管理系统(PMS),重点探讨了供电模式选择、电源监控机制及电源管理模式。文章首先分析了4种供电模式及其硬件配置方式,详细说明了3.3V单电源供电模式的特点;其次阐述了Primary和Secondary两种电源监控机制,包括阈值配置和异常中断处理;最后重点讲解了CPU和系统的电源管理模式,特别对Standby模式及其进入/退出条件进行了详细说明。文章以软件开发视角解析了TC3xx芯片的电源管理功能,为ECU低功耗设计提供了技术参考。

redparrot2008的博客 1525

iOS面试题-UI篇

http://www.360doc.com/content/20/0630/21/31460730_921535347.shtml 这里有关于面试方面汇总:关于iOS面试题汇总(栏目持续更新)https://www.jianshu.com/p/8af16aa3e48d size Classes具体使用 对屏幕进行分类 uIView和CALayer是什么关系? UIView显示在屏幕上归功于CALayer,通过调用drawRect方法来渲染自身的内容,调节CALayer属性可以调整UIView的外观, UIV

henry_lei的博客 515

枪支/刀具检测 (gun, knife) - SIXray, Clasp Dataset,YOLOv11+UI界面+数据集

python复制编辑# 计算 CIoU 损失。

YOLO 538

实战!用Python爬取海关总署进出口贸易数据 —— 从反爬突破到数据可视化全流程指南

{"period": "2026-05", "country": "美国", "import_val": 123.4, "export_val": 567.8, ...}研究员可构建领先指标模型;fig = px.bar(top, x="country", y="total_usd", title="贸易总额TOP10")html.H1("海关进出口数据看板", style={"textAlign": "center"}),"""发起带签名的POST请求(实际为GET + query param)"""

2201_76125261的博客 588

2018 iOS 面试题大全(补充完整版)

原文地址:2018 iOS 面试题大全 由于原作者并没有继续更新,这里我转过来继续更新下 整理的一些iOS面试相关问题,持续更新,敬请关注 2018 iOS面试题大全---全方面剖析面试 1、2018 iOS面试题---UI相关:事件传递,图像显示,性能优化,离屏渲染 2、2018 iOS面试题---Objective_C语言特性相关问题 3、2018 iOS面试题---runtime相关 ...

努力,可能成功!放弃,注定失败! 1279

[SaaS] 阿里妈妈-万相营造

有controlnet的介入,我们是默认controlnet会介入,在inapinting时会把带有商品的画布做一点扩充,然后走inapinting和controlnet,其实也做了一点outpainting的工作。基于阿里妈妈营销平台,提供从图文到视频再到落地页的素材级智能化创意支持,是您营销创意数字资产累积和升值的阵地,最大化提升营销的效率和效果。目前看来抠图基本都是sam了,现在weshop也是,都有一个预扣好的主体,但是一点进去也会重新sam。atomovideo->图生视频。

liguandong 522

iOS面试题汇总

我在这里总结了一些关于iOS的面试题,以及分析,同时还有视频解析,有兴趣的可以看看。有什么面试资料需要也可以找我。 iOS面试题汇总内含面试题讲解,分析,以及视频讲解 后续还会不定时更新请关注点赞,谢谢!谢谢!谢谢! ...

henry_lei的博客 618

手把手教你 Ubuntu 24.04 离线安装 Ollama

本文介绍 Ubuntu 下离线安装 Ollama 并使用 Ollama 部署 llama3.1-70b 大模型

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 1018

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

史上最全的iOS面试题及答案

史上最全的iOS面试题及答案 博客分类:  iOS iOSios面试题ios面试题和答案ios面试题及答案    史上最全的iOS面试题及答案     iOS面试小贴士 ———————————————回答好下面的足够了------------------------------------- 多线程、特别是NSOperation

Lu_Ca的博客 2225

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

UI设计师(界面设计)面试题

UI设计师(界面设计)面试题

AI布道师丨波仔椿 6736

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

iOS面试题(七)

1、http 的post与get区别与联系,实践中如何选择它们? (1)get是从服务器上获取数据,post是向服务器传送数据。 (2)在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。 (3)对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提...

技术熊的博客小窝 4万+

iOS面试题

请描述一下你的iOS应用开发流程。 注册APP ID 注册成为苹果开发者 开发 真机调试 打包和发布 等待审核 上线 1.app分发方式 所谓分发方式简单点讲就是你的app都可以通过哪些途径给用户使用。 a:个人或者公司的开发者账号可以上传appStore,用户通过appStore下载。 b:企业账号:打包分发。 c:打包到本地: produc...

码农天后的博客 4005

ios layer uiview 属性_iOS面试题UI篇

作者 | 齐金亮来源 | CocoaChinaSize Classes 具体使用对屏幕进行分类UIView和CALayer是什么关系?UIView显示在屏幕上归功于CALayer,通过调用drawRect方法来渲染自身的内容,调节CALayer属性可以调整UIView的外观,UIView继承自UIResponder,比起CALayer可以响应用户事件,Xcode6之后可以方便的通过视图调...

weixin_39752800的博客 173

iOS面试题(六) UI视图 -总结

1.系统的UI事件传递机制是怎样的? //主要考察的是hitTest和pointInside这样的一个系统的内部实现。 当点击了屏幕,点击事件传递给UIApplication - UIWindow -在UIWindow里面会判断hitTest,来返回最终的响应视图 内部实现 1.先判断是否可交互,是否隐藏以及是否透明 2.调用pointInside,判断当前点击的点是否在UIWindow范...

ochenmengo的博客 718
上一篇: 性能优化09-安装包瘦身
下一篇: 3. iOS面试题原理篇1
I微微一笑I
博客等级 码龄11年 0粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值