iOS面试必备
发表于|更新于
|浏览量:
备忘
- 内存管理
- 推送原理
- viewController的生命周期,app的生命周期
- 事件响应链与传递链
- 数据库语句、CoreData
- 多线程
- Runtime
- Runloop
- 动画
- git、SVN
- 自动布局的实现,Masonry
- ReactiveCocoa
文章作者: 今是昨非
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 今是昨非的博客!
相关推荐
2015-12-30
实现Button文字(titleLabel)和图片(imageView)上下排列
实现Button文字(titleLabel)和图片(imageView)上下排列 1、我最开始实现这个采用的方法:重新自定义一个view,然后有两个属性label和imageView,然后设置位置布局,再添加单击手势,用代理回传点击方法。 2、第二种方法:自定义一个Button继承Button,有两个属性label和imageView,然后设置布局。这样就不用添加单击手势。 3、第三种方法:直接用Button自带的titleLabel和imageView,写个Category,用来设置label和image的排列方式,eg:上下、左右 明显前两种是很不好的,所以这里只说第三种: Button有两个属性:titleEdgeInsets和imageEdgeInsets,通过设置这两个,就可以实现所有需要的Button的样式,如:image在上、image在下、image在左、image在右。 在设置这两个之前,我们先要理解Button上面的titleLabel和imageView的位置关系(想象Button默认的image和label的显示): titleEdg...
2022-04-24
Algorithem_Matrix
Algorithem_Matrix题目Given an m x n binary matrix mat, return the distance of the nearest 0 for each cell. The distance between two adjacent cells is 1. Example 1: 12Input: mat = [[0,0,0],[0,1,0],[0,0,0]]Output: [[0,0,0],[0,1,0],[0,0,0]] Example 2: 12Input: mat = [[0,0,0],[0,1,0],[1,1,1]]Output: [[0,0,0],[0,1,0],[1,2,1]] 解法
2021-04-21
iOS 删除新创建项目中的SceneDelegate
iOS 删除新创建项目中的SceneDelegate背景Xcode 11之后新建工程,默认为有SceneDelegate,但是SceneDelegate是从iOS 13之后才有的,如果最低兼容版本到iOS 13以下,需要怎么做呢? 过程首先来看一下,SceneDelegate是什么,为什么会有SceneDelegate 官方说明: A UISceneSession object manages a unique runtime instance of your scene. When the user adds a new scene to your app, or when you request one programmatically, the system creates a session object to track that scene. The session contains a unique identifier and the configuration details of the scene. UIKit maintains the sessio...
2022-08-26
一次诡异的录音崩溃排查
背景上午突然有用户反馈,使用录音功能崩溃。起初以为是最近更新的APP新版本有问题,赶紧去排查。 排查首先在测试手机上,测试环境调试,发现并没有崩溃,长出了一口气,说明不是所有用户都有,不是新版本改出来的问题。 然后去听云后台看日志,发现崩溃的地方是初始化AVAudioRecorder的方法——[[AVAudioRecorder alloc] initWithURL:url settings:recordSettings error:&error];。很费解,只是简单的初始化方法,为什么会导致崩溃呢? 一开始猜测会不会是用户录音权限没开,导致开始录音的时候崩溃。尝试后发现如果权限关闭,在进入录音页面前就会提示权限未开启,去开启权限,并不能进入到录音步骤。 然后怀疑会不会是初始化的url为空,又或者机型不支持设置recordSettings中的某些参数?搜索后,发现有url为空崩溃的条目,所以这里大概率也是初始化的url为空。 继续排查,发现初始化的url,是本地的缓存文件夹中Audio文件夹,并且文件名字是取日期+时分秒用于避免重复,格式为yyyyMMdd_HHmmss...
2026-01-16
制作自己表情包
背景浏览 X 的时候,看到一篇制作马年表情包的文章,突然想起来自己之前也有把家里狗狗制作成表情包的念头,当时因为太复杂放弃了。看到文章使用 AI 生成图片,就想再试试 实现参考# 谁不想拥有专属的微信表情包呢,一步步操作,很简单,最终制作成功,步骤如下: 批量生成表情包Gemini Banana Pro 的提示词如下,你可以根据要生成的对象,适当修改,同时附上一张图片/照片: 为我生成图中角色的绘制 Q 版的,LINE 风格的半身像表情包,注意头饰要正确彩色手绘风格,使用 6x4 布局,涵盖各种各样的常用聊天语句,或是一些有关的娱乐 meme其他需求:不要原图复制。所有标注为手写简体中文。生成的图片需为 4K 分辨率 16:9 ⚠️ 需要注意的是,有时候中文会写成不认识的词,可能需要检查修改 ⚠️ 为了保存高清图片,记得点击 Gemini 生成图片右上角的下载按钮哦,右键保存的图片分辨率较低。 生成一个裁切工具生成了 6x4 的表情包,但还需要一张张裁切也太麻烦了。那就用 AI 生成一个图片裁切工具吧,gemini 提示词如下: 写一个web工具可以裁剪图片, 图片是...
2021-07-26
Flutter布局基础——Column竖直布局
Flutter布局基础——Column竖直布局Column-是竖直方向布局子视图的Widget,和Row相似,如果想要子视图充满,可使用Expanded把子视图包括起来。 Column不能滑动(通常来说使用Column时,子视图内容不能超过父视图的高度),如果真的有很多子视图,需要滑动的时候,建议使用ListView。 如果想要横向布局,使用Row。 如果只有一个元素,可考虑使用Align或者Center来布局。 基础使用Column常用属性如下: Column常用属性 children: 子视图 textDirection: 子视图水平布局方向 TextDirection.ltr: 从左到右 TextDirection.rtl: 从右到左 verticalDirection: 子视图竖直布局方向 VerticalDirection.down: 从上到下,默认为这个 VerticalDirection.up: 从下到上 mainAxisSize: 子视图在父视图上竖直方向,占用大小 MainAxisSize.min: 最小,设置了这个之后,再设置mainAxisAl...
公告
This is my Blog