我有一张图片,我希望将其用作ViewController
的{{1}}背景,但它会屏蔽CollectionView
项。它小于UICollection
background
或width
,因此height
对我不起作用。
我的背景如下:
self.view.backgroundColor
有一些 logo = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"imageName.png"]];
logo.contentMode = UIViewContentModeScaleAspectFit;
[self.collectionView addSubview:logo];
[self.collectionView sendSubviewToBack:logo];
[logo sendSubviewToBack:logo];
约束定义了图像的浮动方式。一切都很好,除了图像阻挡了NSLayout
项。
答案 0 :(得分:2)
您可能想尝试将集合视图的backgroundView
属性设置为所需的视图(logo
)。我猜测问题是,如果你正在使用UICollectionViewController类,那么集合视图本身就是父视图。并且您无法在父视图后面发送子视图。
我希望这有帮助!
答案 1 :(得分:1)
您的完整班级是继承UICollectionViewController
还是内部为UIViewController
的{{1}}?
如果您的课程属于UICollectionView
,则您无法将徽标发回,因为它始终必须位于UICollectionViewController
的前方,因此rootview
。
除此之外,请尝试UICollectionView
而不是[self sendSubviewToBack:logo];
。
并且是
[logo sendSubviewToBack:logo];
部分是为了使徽标更加完整或预期的行为是什么?我认为有更好的方法,所以你甚至不需要使用单独的徽标,而是正常的logo = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"imageName.png"]];
logo.contentMode = UIViewContentModeScaleAspectFit;
。
但稍后可以告诉你,我的代码和IDE不在这里^^
要将backgound
更改为UICollectionViewController
,您可以使用此代码
// myClass.h
UIViewController
// myClass.m
@interface myClass : UIViewController<UICollectionViewDelegate, UICollectionViewDataSource>
{
// ...
}
@property (nonatomic, retain) UICollectionView *collectionView;
//...
@end
答案 2 :(得分:0)
根据您拥有的控制器类型,您可以使用以下代码:
如果你的控制器是UIViewController
:
self.view.backgroundColor=
[UIColor colorWithPatternImage: [UIImage imageNamed:@"background.png"]];
如果你的控制器是UICollectionViewController
:
self.collectionView.backgroundView=
[[UIImageView alloc ] initWithImage:[UIImage imageNamed:@"background.png"]];