自分で定義した長い tableViewCell にコンテンツを表示するには、スクロール ビューを作成し、スクロール ビューにスクロールできない tableView を追加します。
私のTollStatusViewController.hで
UITableView *selfTableView;
@property (retain, nonatomic) IBOutlet UIScrollView *fluxScrollView;
私のTollStatusViewController.mで
self.fluxScrollView.clipsToBounds = YES;
self.fluxScrollView.indicatorStyle = UIScrollViewIndicatorStyleBlack;
[self.fluxScrollView setContentSize:CGSizeMake(1400.0, 154.0)];
selfTableView = [[[UITableView alloc]initWithFrame:CGRectMake(0, 0, 1400.0, 154.0) style:UITableViewStylePlain] autorelease];
selfTableView.dataSource = self;
selfTableView.delegate = self;
selfTableView.scrollEnabled = NO;
[self.fluxScrollView addSubview:selfTableView];
およびデリゲート メソッド:
#pragma mark tableview-data-source
- (NSInteger)tableView:(UITableView *)_tableView numberOfRowsInSection:(NSInteger)section
{
return 3;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)_tableView
{
return 1;
}
- (CGFloat)tableView:(UITableView *)_tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row == 0) {
return 38.0;
}
if (indexPath.row == 1) {
return 56.0;
}
if (indexPath.row == 2) {
return 56.0;
}
return 0;
}
- (UITableViewCell *)tableView:(UITableView *)_tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
ManyColumnsViewCell *cellView = [_tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cellView == nil) {
cellView = [[[ManyColumnsViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
return cellView;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
}
次に、fluxScrollView の水平スクロールを有効にして、長い manyColumnsViewCell にコンテンツを表示できるようにします。
しかし、tableView で 1 つの行をクリックすると、ヒントでクラッシュします。
2012-08-17 15:43:14.789 MScope[2261:13a03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFType tableView:didSelectRowAtIndexPath:]: unrecognized selector sent to instance 0x7e87960'
そして、この機能を削除した後
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
}
クラッシュはありません。