我正在编写iOS应用程序。我有CollectionView窗口,里面有一个通过拖放添加的customCell。当我运行应用程序时,CollectionView窗口的一部分是黑色的。 集合可重用视图标识符设置为“ItemCell”。自定义视图单元格设置为“CustomViewCell”类。 CollectionView的dataSource和delegate已设置为FirstViewController。 那就是代码:
FirstViewcontroller:
#import <UIKit/UIKit.h>
#import "CustomViewCell.h"
@interface FirstViewController : UIViewController<UICollectionViewDataSource, UICollectionViewDelegate>
@property (weak, nonatomic) IBOutlet UITextField *txtField;
- (IBAction)slideRed:(id)sender;
- (IBAction)slideGreen:(id)sender;
- (IBAction)slideBlue:(id)sender;
- (IBAction)btnAdd:(id)sender;
@end
.m文件:
#import "FirstViewController.h"
@interface FirstViewController ()
@end
@implementation FirstViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
-(void)viewDidAppear:(BOOL)animated
{
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return 10;
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return 5;
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
CustomViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"ItemCell" forIndexPath:indexPath];
if (cell == nil) {
cell = [[CustomViewCell alloc]init];
}
cell.label.text = @"KitKat";
//cell.lblMain.textColor = [UIColor whiteColor];
// cell.backgroundColor = [UIColor blackColor];
return cell;
}
- (IBAction)slideRed:(id)sender {
}
- (IBAction)slideGreen:(id)sender {
}
- (IBAction)slideBlue:(id)sender {
}
- (IBAction)btnAdd:(id)sender {
}
@end
CustomViewCell:
#import "CustomViewCell.h"
@implementation CustomViewCell
@synthesize label;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
@end
如何强制该collectionView窗口显示带有标签的customCell。然而它只是黑色的窗户。 最好的问候
答案 0 :(得分:2)
无法使默认透明度正常工作。但是解决方法解决了这个问题。 1.选择collectionView。 2.单击“背景”属性添加颜色。 3.选择颜色(在我的情况下为“白色”) 4.将颜色“不透明度”设置为“0%” 你有一个透明的背景。
答案 1 :(得分:1)
我可能需要一个额外的步骤(我认为是类型转换),我发现这有助于将整个过程链接在一起。这是我要比较的代码:
- (CustomViewCell *)collectionView:(UICollectionView *)collectionView
cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellIdentifier = @"collectCell";
CustomViewCell *customCell = (CustomViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];
return customCell;
}
www评论是正确的,您需要在(id)initWithFrame:(CGRect)frame
中初始化您的UI元素,然后使用相同的方法将其添加到self.contentView addSubview:viewElement
。例如:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
stringLabel = [[UILabel alloc] init];
//set the properties of your element
[self.contentView addSubview:stringLabel];
}
return self;
}
您也可以尝试这样做:
[collectionView registerClass:[CustomViewCell class] forCellWithReuseIdentifier:@"collectCell"];