IOSのグリッドビュー[閉鎖]
-
20-09-2019 - |
質問
私は iPadの写真に示されたものと同様、私のiPhoneアプリでグリッドビューを作成したいですアプリに。ライブラリやフレームワークは、この種の機能(非SDK)を追加するための利用可能ですか?理想的には私は最終的にグリッドが縦と横に4 3つの項目広いであろうアプリのアプリのバージョンを開発したい、しかし時間Iは、縦と横に広い3に広い2個の商品を希望されています。
私はこれをやって考えることができる唯一の方法は、のUITableViewをサブクラス化し、2つのまたは3項目を作成し、カスタムセルを有することです。しかし、これは厄介なようで、私はより良い方法があることを確信しています。
一般的な項目は、画像、ラベルとボタンがあります - 。あまりにも複雑何を
解決
あなたはまだこのためのUITableViewを使用することができますし、それをサブクラス化する必要はありません。あなたのようにあなたがしなければならないすべては、それは複雑ではありません独自のカスタムセルを作成していると述べました。すべての乱雑ではない:)
他のヒント
のiOS 6の場合、私は<のhref = "https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UICollectionView_class/Reference/Reference.html#//apple_ref/doc/お勧めします上記UID / TP40012177" のrel = "noreferrer"> UICollectionView と PSTCollectionViewするます。
目標は、フォールバックとしてiOSの4/5にPSTCollectionViewを使用することで、 iOS6にUICollectionViewに切り替えます。私たちも、特定のランタイムのトリックを使用します iOSの古いバージョンのための実行時にUICollectionViewを作成します。 理想的には、あなただけのファイルをリンクし、すべてが古いの作品 システムます。
2010年には、私がお勧め AQGridViewする
私は、これは非常に古いですが、私はこの答えを検索し、いくつかのソリューションをテストした意識です。私はGMGridViewは最高、最低バギーソリューションの1つでした。 https://github.com/gmoledina/GMGridViewするでそれをチェックしてください。
クラス「GridViewCell」を作成し、あなたのテーブルビューに、単純なグリッドビューを作成するには、ヘッダファイルの追加でます:
@interface GridViewCell : UITableViewCell
@property (nonatomic, strong) UIButton *column1;
@property (nonatomic, strong) UIButton *column2;
@property (nonatomic, strong) UIButton *column3;
@end
の.mファイルにこのコードを追加します:
#define CELL_WIDTH 100
#define CELL_HEIGHT 80
#import "GridViewCell.h"
@implementation GridViewCell
@synthesize column1, column2, column3;
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
column1 = [[UIButton alloc] initWithFrame:CGRectMake(5, 5, CELL_WIDTH, CELL_HEIGHT)];
[self addSubview:column1];
column2 = [[UIButton alloc] initWithFrame:CGRectMake(CELL_WIDTH+ 10, 5, CELL_WIDTH, CELL_HEIGHT)];
[self addSubview:column2];
column3 = [[UIButton alloc] initWithFrame:CGRectMake(CELL_WIDTH + CELL_WIDTH + 15, 5, CELL_WIDTH, CELL_HEIGHT)];
[self addSubview:column3];
}
return self;
}
@end
とするときに、デリゲートcellForRowAtIndexPathで新しいクラス「GridViewコントロール」を使用してテーブルを作成します:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
GridViewCell *cell = (GridViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[GridViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
[cell.column1 setBackgroundColor:[UIColor blackColor]];
[cell.column2 setBackgroundColor:[UIColor blackColor]];
[cell.column3 setBackgroundColor:[UIColor blackColor]];
return cell;
}
NRGridViewは周りの最善の方法であると思われます。あなたはここにのそれを見つけることができます。
これはのUITableViewと同様の方法があります。細胞は、必要に応じてカスタマイズすることができます。
私は、カスタムUITableViewCellsを使用することをお勧めします。 iOSの5で、あなたはそれらをサブクラス化する必要はありません。 ただ、あなたのプロジェクトにのtableViewを追加するのtableViewへのXcodeを使ってプロトタイプ細胞(=カスタムセル)を追加し、それらに一意の識別子を与え、カスタムセルをデキューしてインスタンス化するcellForRowAtIndexPathでこの識別子を使用しています。その後、セルを設定し、それを返します。