0

私が作成しているアプリでは、2 つの異なるビュー コントローラーで UIViewContoller と UICollectionViewController を混在させようとしています。CollectionViewController セルはアプリに表示されません。viewcontroller.h のインターフェイスにどのように組み込むのか疑問に思っていました。

現在のViewController.h

#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>

@interface ViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate>
- (IBAction)cameraButtonClicked:(id)sender;
@property (strong, nonatomic) IBOutlet UIImageView *imageView;


@end
4

1 に答える 1

1
@interface ViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate, UICollectionViewDelegate, UICollectionViewDataSource>
- (IBAction)cameraButtonClicked:(id)sender;
@property (strong, nonatomic) IBOutlet UIImageView *imageView;
@property (strong, nonatomic) UICollectionView *collectionView
@end

次に、あなたのViewController.m

- (void)viewDidload{
    self.collectionView = ({
        UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc]init];
        flowLayout.itemSize = CGSizeMake(300, 107);
        flowLayout.minimumLineSpacing = 10.f;
        [[UICollectionView alloc]initWithFrame:self.view.frame collectionViewLayout:flowLayout];
    });

    [self.collectionView setAlwaysBounceVertical:YES];
    [self.collectionView setContentInset:UIEdgeInsetsMake(60, 0, 0, 0)];
    self.collectionView.backgroundColor = [UIColor whiteColor];
    [self.view addSubview:self.collectionView];

    self.collectionView.dataSource = self;
    self.collectionView.delegate = self;
    [self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"Cell"];
}

また、「View Controller」と「View」という用語について、少し混乱していると思います。AUICollectionViewControllerは、オブジェクト ライブラリ ([ユーティリティ] パネル) からストーリーボードにドラッグするオブジェクトです。AUICollectionViewUIScrollView( のようにUITableView) のサブクラスであり、それに動作を与える一連のメソッドが組み込まれています。

UICollectionViewDataSourceおよびプロトコルに準拠しているため、これらのプロトコルのメソッドUICollectionViewDelegateを実装する必要があることに注意してください。@required

  1. - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView;
  2. - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section;
  3. - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath;

私が助けてくれることを願っています。

于 2013-10-13T07:58:28.050 に答える