symbolic breakpoint断点

前言

    最近搞短视频直播的项目,在做横竖屏切换的时候突然想起把之前用到的图片预览库也搞一搞,之前用的一直是竖屏的tableView横向旋转来满足需求,横屏的话旋转起来比较费劲,所以干脆重写了个UICollectionView的图片预览,支持横向图片的滑动和缩放

具体问题如下:

在使用Flowlayout的时候遇到了因为itemSize的宽多出设置的edge问题而报错:

2019-07-25 11:38:22.842273 PicturePreview[868:215914] The behavior of the UICollectionViewFlowLayout is not defined because:

2019-07-25 11:38:22.842453 PicturePreview[868:215914] the item height must be less than the height of the UICollectionView minus the section insets top and bottom values, minus the content insets top and bottom values.

2019-07-25 11:38:22.844219 PicturePreview[868:215914] The relevant UICollectionViewFlowLayout instance is <UICollectionViewFlowLayout: 0x147d08390>, and it is attached to <UICollectionView: 0x148024400; frame = (0 0; 667 375); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x174047890>; animations = { position=<CABasicAnimation: 0x170032c00>; bounds.origin=<CABasicAnimation: 0x170032cc0>; bounds.size=<CABasicAnimation: 0x170032ce0>; }; layer = <CALayer: 0x17402f220>; contentOffset: {0, 0}; contentSize: {1955, 667}> collection view layout: <UICollectionViewFlowLayout: 0x147d08390>.

2019-07-25 11:38:22.844351 PicturePreview[868:215914] Make a symbolic breakpoint at UICollectionViewFlowLayoutBreakForInvalidSizes to catch this in the debugger.


首先我想到的是,是不是因为重设itemSize的设置出了问题,于是将itemSize的设置放在了collectionView布局修改之前进行,成功解决了这个问题,但是中间遇到的:

Make a symbolic breakpoint at UICollectionViewFlowLayoutBreakForInvalidSizes to catch this in the debugger.

作为一个做了好多年开发,自认为很厉(菜)害(鸡)的我来说,还是要记录下的。

解决如下

根据提示,我们需要打一个symbolic breakpoint,所以来到工程的全局断点这里


选择symbolic breakpoint添加,右键edit


这个时候运行就会为我们定位到相关的布局


到了这里可能有的朋友看不懂这个是做什么的,别着急,我们可以看到每个控件的地址,这个时候我们就可以将他们打印出来:


通过比较,我们就可以看出每个空间的frame,如果是size过大超越边距,就可以通过追溯布局修改到满足条件的尺寸了。




参考文章:Xcode 符号断点(Symbolic Breakpoint)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容