尝试使用自定义单元格创建表格视图。 我看了几个教程,但没有打开一个新项目,而是一步一步地进行。 我试着用我现在的那个做。这样我就可以解决问题并了解更多信息。
所以这里我到目前为止所做的步骤: 简单的tableview:
(WorkoutList.xib)
WorkoutList.h(您在上图中看到的是exerciseTableView)
WorkoutList.m:
- (void)viewDidLoad
{
[super viewDidLoad];
self.workoutTableView.dataSource = self;
self.workoutTableView.delegate = self;
TitleArray = [[NSArray alloc] initWithObjects:@"First", @"Second", @"Third", nil];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return TitleArray.count;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 60;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
WorkoutCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell)
{
cell = [[WorkoutCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.workoutTitle.text = [TitleArray objectAtIndex:indexPath.row];
cell.workoutImage.image = [UIImage imageNamed:@"list-item-icon3"];
return cell;
}
WorkoutCell.xib:
自定义类是:WorkoutCell 标识符是:Cell
WorkoutCell.h:
我所看到的只是一个空的TableView ..
我知道这是一个很长的问题,但对我来说理解它并看出我的错误在哪里非常重要。非常感谢!
答案 0 :(得分:1)
在viewcontroller.h文件中,请确保在界面中添加<UITableViewDataSource, UITableViewDelegate>
,如下所示:
@interface myViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
同样在.xib文件中选择UITableView并将数据源和委托连接到文件所有者,将tableView连接到workoutTableView,如下面的屏幕截图所示:
最后在Workoutecell xib中,选择文件所有者并将视图控制器添加到自定义类。
答案 1 :(得分:0)
这里不需要创建.h和.m文件..只需创建WorkoutCell.xib文件..然后在File Inspecter(RHS)中为UIImageview(标记1)和UILabel(tag2)设置标记值...然后写cellForRowAtIndexPath中的以下代码
static NSString *MyIdentifier = @"WorkoutCellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
// If no cell is available, create a new one using the given identifier.
if (cell == nil) {
// Use the default cell style.
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"WorkoutCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
UIImageView *img = (UIImageView *) [cell viewWithTag:1];
[img setImage:[UIImage imageNamed:@"your image"]];
UILabel *lbl=(UILabel *)[cell viewWithTag:2];
[lbl setText:@"your Text"];
}
}
答案 2 :(得分:0)
此外,您有TitleArray.count,就好像它是一个属性。 count是数组上的一个方法。你需要调用它,如下所示
return [TitleArray count];