0

この写真のように、uiTableView の 1 行に 4 つのセル「ボタンまたは写真」を作成したい:

しかし、どうすればそれができるのかわかりません:

助けてください!前もって感謝します!

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

- (void)viewDidLoad
{
[super viewDidLoad];
NSMutableArray *keys = [[NSMutableArray alloc] init];
NSMutableDictionary *contents = [[NSMutableDictionary alloc] init];

NSString *monKey = @"Monday";
NSString *tueKey = @"Tuesday";
NSString *wedKey = @"Wednday";
NSString *thuKey = @"Thusday";
NSString *friKey = @"Friday";
NSString *satKey = @"Satuarday";
NSString *sunKey = @"Sunnday";

[contents setObject:[NSArray arrayWithObjects:@"Work Time", @"Absence", nil] forKey:monKey];
[contents setObject:[NSArray arrayWithObjects:@"Compensation", @"Work Time", @"Absence", nil] forKey:wedKey];
[contents setObject:[NSArray arrayWithObjects:@"Compensation", @"Work Time", nil] forKey:tueKey];
[contents setObject:[NSArray arrayWithObjects:@"Compensation", @"Work Time", nil] forKey:thuKey];
[contents setObject:[NSArray arrayWithObjects:@"Compensation", @"Work Time", nil] forKey:friKey];
[contents setObject:[NSArray arrayWithObjects:@"Compensation", @"Work Time", nil] forKey:satKey];
[contents setObject:[NSArray arrayWithObjects:@"Compensation", @"Work Time", nil] forKey:sunKey];

[keys addObject:tueKey];
[keys addObject:monKey];
[keys addObject:wedKey];
[keys addObject:thuKey];
[keys addObject:friKey];
[keys addObject:satKey];
[keys addObject:sunKey];



[self setSectionKeys:keys];
[self setSectionContents:contents];


self.navigationItem.leftBarButtonItem = self.editButtonItem;
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd  
target:self action:@selector(addNewItem)];
self.navigationItem.rightBarButtonItem = rightButton;
}




- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

NSString *key = [[self sectionKeys] objectAtIndex:[indexPath section]];
NSArray *contents = [[self sectionContents] objectForKey:key];
NSString *contentForThisRow = [contents objectAtIndex:[indexPath row]];

static NSString *CellIdentifier = @"CellIdentifier";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
reuseIdentifier:CellIdentifier];
}

[[cell textLabel] setText:contentForThisRow];    
int column = 4;
for (int i=0; i<column; i++) {

    UIImageView *aBackgroundImageView = [[UIImageView alloc]initWithFrame:CGRectMake(32+184*i,10, 167,215)];
    aBackgroundImageView.tag = (column*indexPath.row)+i;
    [cell.contentView addSubview:aBackgroundImageView];
 //   [aBackgroundImageView release];
}
return cell;

}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {

if(section == 0)
    return @"Monday";
else if(section == 1){
    return @"Tuesday";
}else if(section == 2){
    return @"Wednesday";
} else if(section == 3){
    return @"Thuesday";
} else if(section == 4){
    return @"Friday";
} else if(section == 5){
    return @"Saturday";
}else
    return @"Sunday";

}

編集 1

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithFrame:CGRectZero]; 
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;

int column = 4;
for (int i=0; i<column; i++) {

UIImageView *aBackgroundImageView = [[UIImageView alloc]initWithFrame:CGRectMake(32+184*i,10, 167,215)];
aBackgroundImageView.tag = (column*indexPath.row)+i;
[cell.contentView addSubview:aBackgroundImageView];

}
  return cell;
}
4

4 に答える 4

0

この画像のように、uiTableViewの1行に4つのセル「ボタンまたは画像」を作成します。

しかし、どうすればそれができるのかわかりません:

まず、MyCellというObjective-cクラスを作成する必要があります。MyCellはUITableViewCellのサブクラスになります(これは非常に重要です)MyCell.hでは、

  @interface MyCell : UITableViewCell
@property (nonatomic, weak) IBOutlet UIButton *firstButton;
@property (nonatomic, weak) IBOutlet UIButton *secondButton; 
@property (nonatomic, weak) IBOutlet UIButton *thirdButton;  
@property (nonatomic, weak) IBOutlet UIButton *fourthButton;
  @end

次に、MyCell.mで、これらすべてのボタンを合成します。

カスタマイズしたセルを使用するテーブルビューで、cellForRowAtIndexPathメソッドを変更する必要があります。UITableViewCellをカスタムMyCellに置き換えます。また、使用しているテーブルビューに「MyCell.h」をインポートすることを忘れないでください。

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
        static NSString *CellIdentifier = @"Cell";
        MyCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if(!cell)
{
    cell = [[MyCell alloc]initWithStyle:UITableViewCellStyleDefault

再利用Identifier:CellIdentifier]; }

[cell.firstButton setTintColor:[UIColor redColor];
[cell.secondButton setTintColor:[UIColor redColor];
// and so on.. til you set all your four buttons.

return cell; }

そしてそこから、テーブルビューにカスタムセルが表示されます。

于 2012-08-01T13:56:12.527 に答える
0

ユーザーの操作が必要ない場合は、それらを UIView (それぞれが適切なフレームを持つサブビュー) に追加し、コンテナー ビューをセルの backgroundview にすることができます。

ビューをセルの contentView に直接追加してユーザー インタラクションを取得できますが、accessoryView などがあるとその領域が変更されるため注意が必要です。

于 2012-07-30T23:58:57.050 に答える
0

Xcode で 4 つのボタンを使用してカスタム セルを設計し、それらを tableview にマップできます。

于 2012-07-31T06:45:45.417 に答える
0

インターフェイス ビルダーでカスタム セルを設計し、4 つのボタンをレイアウトする方が簡単です (ユーザー インタラクションが必要なため)。これは、開始するための非常に優れたチュートリアルです。各ボタンにタグ番号を付けて、後でどのボタンがタップされたかがわかるようにします。

于 2012-07-31T08:12:46.870 に答える