ios - UICollectionView.backgroundView 坏了吗

标签 ios objective-c uicollectionview

我正在写一些相对简单的东西,或者我是这么想的。

首先是代码,如果我的服务器没有返回结果,我会尝试将图像放在 UICollectionView 的背景上。图片是 200 x 200:

UIView *myView = [[UIView alloc] initWithFrame:self.view.bounds];
CGRect myViewSpace = self.view.bounds;
CGFloat myX = (myViewSpace.size.width /2.0) - 100;
CGFloat myY = (myViewSpace.size.height /2.0) - 100;
UIImageView *imView = [[UIImageView alloc] initWithFrame:CGRectMake(myX, myY, 200, 200)];
imView.image = [UIImage imageNamed:@"imNotHome"];
[myView addSubview:imView];
myCollectionView.backgroundView = myView;

一旦有结果,我希望能够将其删除。

在我重新加载 UICollectionView 之前,我认为它就像放置以下内容一样简单:

[myCollectionView.backgroundView removeFromSuperview];

但是,它似乎什么也没做。

我错过了什么吗?

提前致谢!

最佳答案

应该这样来代替:

myCollectionView.backgroundView = nil;

说明:您应该以与设置它相同的方式取消设置 UICollectionView 的背景。您不是通过操作 View 层次结构来设置它,而是通过设置 background 属性来设置它。您确实在上一行中调用了 addSubview,但那是将 subview 添加到背景 View ,而不是添加背景 View 本身。

编辑:

这里有一篇关于此 UICollectionView 错误的非常好的文章: http://blog.spacemanlabs.com/2013/11/uicollectionviews-backgroundview-property-is-horribly-broken/

作者给出的解决方案是将背景重置为空的不透明 View :

UIView *blankView = [UIView new];
blankView.backgroundColor = [UIColor whiteColor];
[myCollectionView.backgroundView removeFromSuperview];
myCollectionView.backgroundView = blankView;

此外,作者建议完全不要使用 backgroundView 属性,而应该自己使用:

Frankly, I think the best solution is to just ignore the backgroundView property all together. Instead, make the collection view’s background clear, and implement your own backgroundView; just throw a view behind the collection view.

关于ios - UICollectionView.backgroundView 坏了吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23059811/

相关文章:

ios - 通过委托(delegate)函数设置 Collection View 中进度条的值

ios - React Native 中 iOS 组件的集成

ios - 如何将网站转换为 iOS 应用程序

iphone - 这三种技术中哪种技术会非常快?

c# - 如何在MonoDevelop中使用PickerView控件(iPhone)

ios - 使用字典值填充 tableView 内的 collectionView 标签

ios - 可以使用 UICollectionViewCompositionalLayout 制作此布局

ios - 区 block 完成状态验证

iOS 开发 - 没有设备的配置文件

iphone - 将 RSA key 导入 iPhone 钥匙串(keychain)?