iOS在汇集视图顶部的背景图象

时间:2013-05-06 21:20:11

标签: ios background-image uicollectionview

我有一张图片,我希望将其用作ViewController的{​​{1}}背景,但它会屏蔽CollectionView项。它小于UICollection backgroundwidth,因此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项。

3 个答案:

答案 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"]];