4

ボタンでグリッドを作成したい。私が見たサンプル アプリケーションのほとんどは、画像のグリッドを作成する方法を説明していますが、ボタンについては説明していません。

UICollectionViewのセルにボタンを設定するには?

ここに私のコードがあります、

FirstViewController.h

#import <UIKit/UIKit.h>
@interface FirstViewController : UIViewController<UICollectionViewDataSource,UICollectionViewDelegate>
@property (weak, nonatomic) IBOutlet UICollectionView *myCollectView;
@end

FirstViewController.m

#import "FirstViewController.h"
#import "CustomCell.h"

@interface FirstViewController ()
{
    NSArray *arrayOfBtns;
}
@end

@implementation FirstViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    [[self myCollectView]setDelegate:self];
    [[self myCollectView]setDataSource:self];
    // Do any additional setup after loading the view, typically from a nib.
    arrayOfBtns=[[NSArray alloc]initWithObjects:@"Save",@"Goto", nil];
}
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
    return 1;
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    return [arrayOfBtns count];
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier=@"Cell";
    CustomCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
    //[[cell btn]setText:[arrayOfBtns objectAtIndex:indexPath.item  ]];
    return cell;
}
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

CustomCell.h

    #import <UIKit/UIKit.h>

@interface CustomCell : UICollectionViewCell
@property (weak, nonatomic) IBOutlet UIButton *btn;

@end

CustomCell.m

 #import "CustomCell.h"

@implementation CustomCell

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
    }
    return self;
}
- (IBAction)btn:(id)sender {
}
@end
4

3 に答える 3

0
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    CustomCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
    //[cell.btn setText:[arrayOfBtns objectAtIndex:indexPath.item]];
    return cell;
}

セルはゼロです。CellIdentifier のカスタム セルを登録する必要があります。

于 2013-09-17T09:02:34.750 に答える