首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我是如何做到 5 分钟之内将应用大小减少 60%

当有人尝试用错误密码解锁设备,这个应用会通过前置摄像头拍照并播放警示音。 今天在这篇文章教大家一些我用来减小应用体积技巧。这些技巧都简单且易用,会在现在或将来为大家提供一些帮助。...这些设备印度,巴其尔等非洲发展中国家占有大量市场,你可以在这些地方获得大量用户。 让你应用大小保持最佳变得尤其重要。你应用体积越小,你用户就有更多空间来存储他们视频和图片。...所以,如果你应用体积太大,将会需要更多时间来下载(更可能情况用户根本不会去下载)。同样,大多数用户流量有限,用户下载每个字节都是花钱。...从 Apk Analyser 输出来看,应用大小是 3.1MB。经过 Play 商店压缩,大致是 2.5MB。 从截图中可以看出主要有 3 个文件夹占据了应用大多数空间。...当你编译你应用时,gradle 会将你所有模块里 .class 文件转换成 .dex 文件并将这些文件合成一个 classes.dex 文件。

97620

【IOS开发基础系列】UITextView专题

包括一些信息,例如如何调整字间距以及缩放。最终,该对象包含信息将用于文本绘制。该参数可为 nil 。 返回值         一个矩形,大小等于文本绘制完将占据宽和高。...讨论         可以使用该方法计算文本绘制所需空间。size 参数是一个constraint,用于绘制文本作为参考。...但是,如果绘制完整个文本需要更大空间,则返回矩形大小可能比 size更大。一般,绘制时会采用constraint 提供宽度,但高度则会根据需要而定。...特殊情况         为了计算文本块大小,该方法采用默认基线。如果NSStringDrawingUsesLineFragmentOrigin未指定,矩形高度将被忽略,同时使用单线绘制。...(译者注:字体大小+行间距=行距)     NSStringDrawingUsesDeviceMetrics:         计算布局使用图元字形(而不是印刷字体)。

31240
您找到你想要的搜索结果了吗?
是的
没有找到

编码篇-iOS开发中奇巧小伎

1.TableView不显示没内容Cell 2.百分号转换 3.禁止手机睡眠 4.跳进app权限设置 5.collectionView内容小于其宽高时候是不能滚动,设置可以滚动: 6.设置navigationBar...上title颜色和大小 7.统一收起键盘 8.导入自定义字体库 9.动态方法动态执行 10.isKindOfClass和isMemberOfClass区别 11.Label字体大小 12.为UIView...33、获取手机RAM容量 34、UITextView中显示html文本 35、选中textField或者textView所有文本(我这里以textView为例) 36、隐藏UITextView/UITextField...光标 37、当UITextView/UITextField中没有文字,禁用回车键 38、通知监听APP生命周期 39、获取collectionViewCell屏幕中frame 40、UITextField...UIApplicationDidChangeStatusBarFrameNotification 设备状态栏frame改变 UIApplicationBackgroundRefreshStatusDidChangeNotification 应用程序在后台下载内容状态发生变化

5.3K10

iOS学习——tableview中带编辑功能cell键盘弹出遮挡和收起问题解决

这个问题在之前我们随笔iOS学习——键盘弹出遮挡输入框问题解决方案中也有讲过对应解决方案,但是该方案最近应用中还有点小问题,我们在这里重新进行处理好。...中cell当有键盘弹出时候表单整体会自动进行上移,我们需要编辑区域正好可以键盘上方,这样我们正好也可以看到我们编辑内容,方便我们进行修改和调整具体内容。   ...,开始编辑时候返回当前cell相对屏幕位置方便我们控制是否上移tableview,结束编辑返回我们编辑框内容方便进行记录。...  我们在对tableview上移进行调整,我们需要知道当前编辑cell相对屏幕位置,然后才能判断是否需要上移tableview以及上移多少。...,首先,我们再主控制器中定义几个属性来保存我们键盘弹出tableviewcontentOffset以及当前编辑cellframe,然后应用自定义cell设定我们两个回调block,当开始编辑

3.8K80

输入框高度随输入内容变化

实现这个效果关键点只有两点: 获取正在输入内容UITextView占用了多少行 让UITextView动态改变大小 一开始,为了解决第一个问题,我一直考虑怎么获取换行事件,发现只用捕捉\n输入即可...所以感觉这个思路太麻烦 对于第一点,有一个方便计算方法,就是获取UITextView内容高度比上UITextView字体高度,即可得到当前行数。...好了,知道其集成UIScrollView就好办了,因为UITextView只有输入内容超过其显示范围才可以拖动,那就知道输入文字bound就是UIScrollViewcontentSize。...这样就知道输入内容大小了。 那每一行高度呢? 按我以前经验,行高差不多是字体大小 4/3 倍.这样设值显示效果一般都挺好。所以可以设值一个宏定义来处理与字体相关高度。...:(NSInteger)lines; @end 每次输入内容时候计算行数,声明一个变量保存上一次行数,两次行数不一致即为发生换行 - (void)textViewDidChange:(UITextView

2.5K10

UITableViewCell系列之(一)让你cell支持二次编辑

每个开发者采用方式不同,有的开发者直接以modal/push方式present出一个控制器,把tableViewCell上内容传递到被modal/push控制器UITextView上,UITextView...另外一种方法是直接在当前控制器(界面)上以动画(甚至是没有动画)形式弹出一个UITextViewUITextView上修改文本内容,修改完成后再隐藏/移除UITextView,把内容重新显示到tableView...做同学,可能还不忘弹出UITextView给tableView添加一个蒙版或者模糊效果以突出重点,提高用户体验度。以上两种方式算是中规中矩。...思路如下: 注意:以下操作全部是didSelectRowAtIndexPath:方法中进行 获取点击那一行celltableView坐标系上frame,并转换为view坐标系上frame,...此处称为frame1 根据frame1获取点击那一行cell cell上添加一个和label同样尺寸、同样坐标的UITextView,以让UITextView正好遮盖住label 把cell上内容显示到

7.8K40

【iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)

: 选中后, 该 UITextView 控件有弹性, 拖动控件内容有弹回效果, 没有勾选拖到边界僵硬停止; -- Bounce Horizontally : 水平方向有弹性; -- Bounce...Touch Up Inside 等绑定事件; -- 下面是 UITextView 控件拖动内容设置 :  (2) UITextView 委托方法简介 UITextView 委托方法简介 :  --...:" 方法 : 用户将要开始编辑 UITextView 内容激发该方法; -- "- textViewDidBeginEditing : " 方法 : 用户开始编辑 UITextView 内容后 激发该方法...UITextView 控件指定范围文本内容将要被替换激发方法; -- "- textViewDidChange : " 方法 : 文本内容发生改变, 激发该方法; -- "- textViewDidChangeSelection..., 没有导航栏应用中, 需要有键盘附件来关闭键盘; -- 1.

6.4K20

你不知道Mac屏幕显示图像

CPU 计算好显示内容提交到 GPU,GPU 渲染完成后将渲染结果放入帧缓冲区,随后视频控制器会按照 VSync 信号逐行读取帧缓冲区数据,经过可能数模转换传递给显示器显示。...对此你应用中,应该尽量减少不必要属性修改。 当视图层次调整,UIView、CALayer 之间会出现很多方法调用与通知,所以优化性能,应该尽量避免调整视图层次、添加和移除视图。...上面也说过,对这些属性调整非常消耗资源,所以尽量提前计算好布局,需要一次性调整好对应属性,而不要多次、频繁计算和调整这些属性。...常见文本控件 (UILabel、UITextView 等),其排版和绘制都是主线程进行,当显示大量文本,CPU 压力会非常大。...尽管这实现起来非常麻烦,但其带来优势也非常大,CoreText 对象创建好后,能直接获取文本宽高等信息,避免了多次计算(调整 UILabel 大小时算一遍、UILabel 绘制内部再算一遍);CoreText

2K70

小问题记录

,不要写全路径,因为软件更新或者重新安装沙盒路径会变 更新流程是这样:更新,先在新路径里安装新程序,然后把旧程序文件夹里配置文件之类文件拷贝到新路径里去,然后删除旧程序 所以,如果数据库里保存是绝对路径...、调用这个方法view2、view2所有子view都会调用layoutSubviews setFrame:只有view设置frame且尺寸参数有不同情况下调用 滑动UIScrollView,scrollView...和其父view会调用 旋转屏幕会在viewController根view调用 重新改变view大小,其父view会调用 drawInRect: withAttributes:参数怎么写 UIFont...这个属性,但是UITextView没有,大家表示也是醉了。...UITextView有对应回调,UITextField就没有。

3.4K21

iOS隐私安全:用户协议及隐私政策弹框(包含超链接属性、demo支持中英文切换)

前言 熟悉监管要求,掌握合规操作流程,避免App被降级或者下架。需要确保App有《隐私政策》,并且在用户首次启动App就弹出《隐私政策》取得用户同意。...登录界面弹用户协议及隐私政策,如果用户点击不同意,不能停留在弹框界面,需要隐藏弹框,否则无法通过OPPO安卓应用市场。...URL Webview) 效果图(点击demo右上架文字进行中英文切换) 文本框信息对应中英文key,用于本地化 "Explain3" = "向您说明,使用我们服务,我们如何收集、使用、...本"; "Wemaycollect1"="您在使用我们服务,我们可能会收集和使用您相关信息。...我们希望通过本"; "then_click_Agree" = " ,希望您仔细阅读,充分理解协议中内容后再点击同意。"

1.7K30

iOS文本布局探讨之三——使用TextKit框架进行富文本布局

iOS6中,系统为UILabel,UITextView等这类文本渲染控件引入了NSAttributedString属性,有了NSAttributedString这个类,创建灵活多彩文本控件变得十分轻松...所描述内容转换为NSAttributedString示例。...试想,如果可以向一段文本中添加任意数据类型文件,当用户点击这个文件,可以获取到文件数据并进行业务逻辑处理,这将十分酷。...) NSFileWrapper *fileWrapper; 结合UITextView可以为NSAttributedString属性字符串添加超链接,代码回调中监听此超链接回调可以获取NSTextAttachment...当用户点击文件图标,会将携带gif文件数据进行打印。 专注技术,热爱生活,交流技术,也做朋友。 ——珲少 QQ群:203317592

2K20

ios学习——键盘收起

开发过程中,我们经常会用到UITextField、UITextView等文本框,然后这些文本框在点击之后会自动成为第一响应者(FirstResponder),并自动弹出软键盘。...具体解决方案有两种: 1、在当前页面设置点击事件,当点击事件发生,注销当前视图第一响应者或者设置当前摄入结束。...当点击事件发生在非选中区域,则键盘会自动回收: 1 //viewDidLoad中 添加点击手势,为了关闭键盘操作 2 UITapGestureRecognizer *tap1 = [[UITapGestureRecognizer...2、利用键盘上 回车键 来进行设置当前UITextField、UITextView等文本框不是第一响应者,这种方法对UITextField、UITextView应用不一样,需要区别进行。   ...; //UITextViewDelegate代理,当键盘输入变化时调用,可以通过该方法判断输入内容 - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange

1.8K60

iOS导航栏使用总结

注意1:局部设置与全局设置方法相同,但调用方法对象变成了"self.navigationController.navigationBar" 注意2:局部设置必须遵循一个原则:"进入页面修改,离开页面还原...UI布局进行优化:视图控制器里面第一个被添加进去视图是滑动类视图,并且其Frame是整个屏幕大小时,系统会自动调整其contenInset,以保证滑动视图里内容不被UINavigationBar与UITabBar...但是对于普通视图,此时我们仍然需要注意:非滑动视图布局仍然要考虑导航栏和标签栏高度,注意不被遮挡,比如布局时候加上导航栏高度,以免内容被导航栏遮挡。...我们可以通过一段代码来测试一下效果,默认导航栏(半透明)视图控制器里添加如下代码: //UITextView是滑动视图,内容自动向下偏移,不会被导航栏覆盖 UITextView *leftTextView...,默认值是UIRectEdgeAll,即:当前视图控制器里各种UI控件会忽略导航栏和标签存在,布局若设置其原点设置为(0,0),视图会延伸显示到导航栏下面被覆盖。

3.1K20

iOS学习——键盘弹出遮挡输入框问题解决方案

iOS或Android等移动端开发过程中,经常遇到很多需要我们输入信息情况,例如登录要输入账号密码、查询要输入查询信息、注册或申请需要填写一些信息等都是通过我们键盘来进行输入iOS开发过程中...,一般用于进行输入信息有两类:UITextField和UITextView,前者是单行输入文本框,后者是可滑动多行输入文本框,在这整个开发过程中,我们需要控制键盘弹出和收起、输入结束时候获取输入信息...: / textViewDidEndEditing: 方法,这个方法就是方便我们输入结束之后对文本框内容进行处理。...  还是之前分析中,我们知道键盘弹出和收起,系统都会发出对应通知,所以我们可以收到键盘弹出时候判断键盘位置和当前输入文本框位置,如果有遮挡,就将当前视图进行一个向上平移,收到键盘回收通知就平移到原先位置...,然后键盘弹出通过为止比较确定是否平移,以及平移offset。

3.5K60

iOS 优化界面流畅技巧

对此你应用中,应该尽量减少不必要属性修改。 当视图层次调整,UIView、CALayer 之间会出现很多方法调用与通知,所以优化性能,应该尽量避免调整视图层次、添加和移除视图。...上面也说过,对这些属性调整非常消耗资源,所以尽量提前计算好布局,需要一次性调整好对应属性,而不要多次、频繁计算和调整这些属性。...常见文本控件 (UILabel、UITextView 等),其排版和绘制都是主线程进行,当显示大量文本,CPU 压力会非常大。...尽管这实现起来非常麻烦,但其带来优势也非常大,CoreText 对象创建好后,能直接获取文本宽高等信息,避免了多次计算(调整 UILabel 大小时算一遍、UILabel 绘制内部再算一遍);CoreText...这个只是我一个设想,并不一定能实现或起作用。 如何评测界面的流畅度 最后还是要提一下,“过早优化是万恶之源”,需求未定,性能问题不明显,没必要尝试做优化,而要尽量正确实现功能。

1.4K10

iOS 性能优化

对此你应用中,应该尽量减少不必要属性修改。 当视图层次调整,UIView、CALayer 之间会出现很多方法调用与通知,所以优化性能,应该尽量避免调整视图层次、添加和移除视图。...上面也说过,对这些属性调整非常消耗资源,所以尽量提前计算好布局,需要一次性调整好对应属性,而不要多次、频繁计算和调整这些属性。...常见文本控件 (UILabel、UITextView 等),其排版和绘制都是主线程进行,当显示大量文本,CPU 压力会非常大。...尽管这实现起来非常麻烦,但其带来优势也非常大,CoreText 对象创建好后,能直接获取文本宽高等信息,避免了多次计算(调整 UILabel 大小时算一遍、UILabel 绘制内部再算一遍);CoreText...延时加载,是指首先加载当前必须可视内容稍后一段时间内或特定事件,再触发其他内容加载。这种方式可以很有效提升界面绘制速度,使体验更加流畅。

2.8K20

iOS_Swift运用AttributedString实现可点击文案

Swift项目中需要实现:一段文案默认最多显示3行,当超过三行末尾显示“更多”,当用户点击更多时,再展开显示所有文案: 期间遇到了一个类型转换问题,在此记录说明一下: let attributedString...// 而下面的addAttribute那句 添加.linkvalue需要类型是:NSRange?...// 系统无法自动将其转换,所以我需要手动转一下: // 可以根据 'Range?' 和 '完整字符串' 创建 NSRange?...let textView: UITextView = UITextView(frame: CGRect(x: 30, y: 100, width: 300, height: 100)) textView.backgroundColor...textView.delegate = self // 指定代理处理点击方法 textView.attributedText = attributedString view.addSubview(textView) 然后代理方法里截获

1.8K20
领券