前言
? ? 最近搞短視頻直播的項目款筑,在做橫豎屏切換的時候突然想起把之前用到的圖片預覽庫也搞一搞轰绵,之前用的一直是豎屏的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.
作為一個做了好多年開發(fā),自認為很厲(菜)害(雞)的我來說映挂,還是要記錄下的泽篮。
解決如下
根據(jù)提示,我們需要打一個symbolic breakpoint柑船,所以來到工程的全局斷點這里
選擇symbolic breakpoint添加帽撑,右鍵edit
這個時候運行就會為我們定位到相關的布局
到了這里可能有的朋友看不懂這個是做什么的,別著急椎组,我們可以看到每個控件的地址,這個時候我們就可以將他們打印出來:
通過比較历恐,我們就可以看出每個空間的frame寸癌,如果是size過大超越邊距,就可以通過追溯布局修改到滿足條件的尺寸了弱贼。