0

我有一张图片,我想用它作为背景,ViewControllerCollectionView它挡住了UICollection项目。它小于background widthheightself.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限制定义图像如何浮动。一切都很好,只是图像挡住了UICollection物品。

4

3 回答 3

2

您可能想尝试将backgroundView集合视图的属性设置为所需的视图 ( logo)。我猜问题是如果你使用 UICollectionViewController 类,那么集合视图本身就是父视图。而且您不能在父视图后面发送子视图。

我希望这有帮助!

于 2013-05-06T21:39:53.010 回答
1

您的完整类是继承UICollectionViewController还是UIViewController带有UICollectionView内部?

如果您的班级是UICollectionViewController,那么您不能将徽标发送到后面,因为它总是必须在 前面,rootview所以UICollectionView.

否则尝试[self sendSubviewToBack:logo];代替[logo sendSubviewToBack:logo];.

并且是

logo = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"imageName.png"]];

logo.contentMode = UIViewContentModeScaleAspectFit;

使徽标全尺寸的部分或预期的行为是什么?我认为有一种更好的方法,因此您甚至不需要使用单独的徽标,而是使用正常的backgound.

但可以稍后告诉你,我的代码和 IDE 不在这里 ^^


要将您更改UICollectionViewController为 a UIViewController,您可以使用此代码

// myClass.h

@interface myClass : UIViewController<UICollectionViewDelegate, UICollectionViewDataSource>
{
    // ...
}

@property (nonatomic, retain) UICollectionView *collectionView;
    //...

@end

// myClass.m

// do imports

@implementation myClass

@synthesize collectionView;

-(void)viewDidLoad
{
    [super viewDidLoad];
    self.collectionView = [[UICollectionView alloc] initWithFrame:self.view.frame collectionViewLayout:anyLayout];

    UIImageView *logo = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"imageName.png"]];
    logo.contentMode = UIViewContentModeScaleAspectFit;
    [self.view addSubview:logo];
    [self sendSubviewToBack:logo];
}
于 2013-05-06T22:22:24.030 回答
0

根据您拥有的控制器类型,您可以使用以下代码:

如果您的控制器是UIViewController

 self.view.backgroundColor= 
       [UIColor colorWithPatternImage: [UIImage imageNamed:@"background.png"]];

如果您的控制器是UICollectionViewController

 self.collectionView.backgroundView= 
       [[UIImageView alloc ] initWithImage:[UIImage imageNamed:@"background.png"]];
于 2013-08-19T18:16:44.653 回答