iOS错误总结

简介:

获取不到自动布局的ScrollView的实际宽度

这个问题出现在我想做一个图片轮询的时候,我放了一个scrollView在view上,布局为:左=20,右=20,上=0,height=200.
我想在代码中获取到真实地scrollview的宽度,但是获取到的值竟然比屏幕的宽度还要大,虽然我可以用一种笨办法,就是用UIScreen获取到屏幕的总宽度,再减去我约束的两边20,也就是减去40,得到最后的实际宽度,但是要是以后约束变了,其他人不知道你这里是直接写死的,那就会出现问题,我总认为系统可以得到动态的实际宽度,问题的图片如下:

问题代码1

上述代码在viewDidLoad中打印了屏幕宽度和实际scrollView的宽度,很明显scrollView的宽度比屏幕宽度要大。

下面是我的约束:

约束

上图的2为我的约束,上图的1为系统通过约束算出的宽度(并不是我设置的),经过多方查询,终于知道原来在viewDidLoad中并不会算出auto layout的值,但是可以在viewDidLayoutSubviews这个方法中进行计算。所以只需要把相应取值的操作放在这个方法中即可。

1
2
3
4
5
override func viewDidLayoutSubviews() {
let scrollWidth = self.scrollView1.frame.size.width
let mainWidth = UIScreen.mainScreen().bounds.size.width
print("屏幕宽度: \(mainWidth), scrollView宽度: \(scrollWidth)")
}

结果为:

屏幕宽度: 375.0, scrollView宽度: 335.0

参考地址:stackoverflow

swift项目通过cocoapods管理swift和objective-c进行混合编程注意点

如果Podfile里面使用了use_frameworks!,并且存在oc的库,那么引用oc的库时就不能使用在桥接文件里面引入头文件这个方法了。
解决方法:
Project > General > Linked Framework and Libraries中增加要引用的oc framework。例如AFNetworking
在要使用的类上import AFNetworking
一切ok!

目录
相关文章
|
存储 缓存 算法
iOS 常见触发离屏渲染场景及优化方案总结
iOS 常见触发离屏渲染场景及优化方案总结
709 0
iOS 常见触发离屏渲染场景及优化方案总结
|
JSON 自然语言处理 Dart
Alibaba.com瘦包40MB——业界最全的iOS包大小技术总结
本文总结提炼了Alibaba.com App的瘦身的技术和策略,系统化地介绍APP瘦身的业务价值、分析技术、瘦身技术、防劣化机制,让读者可以系统化地了解APP瘦身的技术体系。并基于实践经验,介绍各种瘦身技术的ROI,让读者可以避免踩雷,将资源浪费在效果不佳的技术上。希望对你有所帮助。
Alibaba.com瘦包40MB——业界最全的iOS包大小技术总结
|
JSON 自然语言处理 编译器
Alibaba.com瘦包40MB——业界最全的iOS包大小技术总结
前言包大小是衡量APP性能的一项重要指标,它直接影响用户的下载点击率(包太大不想下)、下载安装成功率(下载慢不用了)、APP卸载率(太占空间先删掉)。包大小的计算逻辑很简单,它是各种类型的文件占用磁盘大小相加。APP瘦身的技术却很复杂,代码文件的复杂度和编译器策略决定了可执行文件的大小,业务功能和工程架构决定了代码文件的复杂度。iOS APP瘦身,需要掌握的技能有XCode构建技术、LLVM编译器
2838 0
Alibaba.com瘦包40MB——业界最全的iOS包大小技术总结
|
物联网 Android开发 iOS开发
iOS开发 - 蓝牙学习的总结
iOS开发 - 蓝牙学习的总结
130 0
|
安全 iOS开发 开发者
iOS 6版本与之前版本差异总结
iOS 6版本与之前版本差异总结
102 0
|
程序员 API iOS开发
iOS开发:个人对于textView基础用法的总结(其一)
从事了这么久ios开发,对于textView的使用并不陌生,它和textfield有相似的地方,也有不同的地方,这里只对textView的一些基础用法进行描述,textfield不在这里描述。
301 0
|
设计模式 缓存 编解码
2020年iOS大厂面试题总结
2020年iOS大厂面试题总结
406 0
|
缓存 Swift iOS开发
iOS 蓝牙设备名称缓存问题总结
iOS 蓝牙设备名称缓存问题总结
388 0
|
Unix Linux C#
iOS开发:Crash异常总结与捕获
说到异常捕获,就必须要提到Crash问题,iOS中,Crash一般分为两种: 1、一种是由EXC_BAD_ACCESS引起的,原因是访问了不属于本进程的内存地址,有可能是访问已被释放的内存; 2、一种是未被捕获的目标C异常(NSException)记录,导致程序向自身发送了SIGABRT信号而崩溃。
680 0
iOS开发:Crash异常总结与捕获
|
存储 编译器 iOS开发
iOS逆向 05:汇编总结
iOS逆向 05:汇编总结
166 0