iOS开发过程中遇到的问题(持续更新)

记录自身在iOS开发过程中遇到的问题,方便以后经常查看,同时也给大家做个参考。

1、collectionview打印异常log

The behavior of the UICollectionViewFlowLayout is not defined because:
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.
The relevant UICollectionViewFlowLayout instance is <KanbanCollectionViewHorizontalLayout: 0x7fa39960c8e0>, and it is attached to <UICollectionView: 0x7fa39a8ba000; frame = (0 0; 375 70); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x60800064fba0>; layer = <CALayer: 0x608000230800>; contentOffset: {0, 0}; contentSize: {187.5, 70}> collection view layout: <KanbanCollectionViewHorizontalLayout: 0x7fa39960c8e0>.
Make a symbolic breakpoint at UICollectionViewFlowLayoutBreakForInvalidSizes to catch this in the debugger.

出现这个问题证明是UICollectionView的itemSize宽度设置错了,同样,高度设置错了也会出现类似的提示,在网上搜了一下,有如下几种解决办法:

1)、不让collectionview的内容自动调整

self.automaticallyAdjustsScrollViewInsets = NO;

原因:当automaticallyAdjustsScrollViewInsets为YES时,它会找view里的scrollView,并设置scrollView的contentInset为{64, 0, 0, 0}。如果你不想让scrollView的内容自动调整,将这个属性设为NO(默认值YES)。

2)、手动调整itemSize的大小

KanbanCollectionViewHorizontalLayout *horizontalLayout = [[KanbanCollectionViewHorizontalLayout alloc] init];
[horizontalLayout setItemSize:CGSizeMake((SCREEN_WIDTH)/4, 55)]; // 这里设置item的大小是55

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{
    return UIEdgeInsetsMake(10, 0, 10, 0); // 上下间距是10
}

我设置的collectionview的高度是70,但是item的大小和上下间距加起来是75,超过了设置的高度,所以会报上面的错误,后来把上下间距改成5就解决问题了。

2、单张图片无限旋转效果

// 开启
- (void)refreshButtonStartAnimation:(UIButton *)button
{
    CABasicAnimation *rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
    rotationAnimation.toValue = [NSNumber numberWithFloat:M_PI * 2.0];
    rotationAnimation.duration = 0.8;
    rotationAnimation.cumulative = YES;
    rotationAnimation.repeatCount = ULLONG_MAX;
    [button.imageView.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
}
// 关闭
- (void)refreshButtonStopAnimation:(UIButton *)button
{
    [button.imageView.layer removeAllAnimations];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容