gpt4 book ai didi

ios - UICollectionView.backgroundView 坏了吗

转载 作者:搜寻专家 更新时间:2023-10-30 20:17:44 25 4
gpt4 key购买 nike

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

首先是代码,如果我的服务器没有返回结果,我会尝试将图像放在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com