我的目的是为我的表格视图的一行自定义单元格。所以我在做:
MyClass.m
1 .- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{
3 . NSLog(@"section %d:row %d",indexPath.section, indexPath.row);
4 . static NSString *CellIdentifier = @"reusedCell";
5 . DetailCell *cell = (DetailCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
6 . cell.backgroundColor = [UIColor clearColor];
7 . // Customize the cell of each row from table
8 . **if ( cell == nil ) {
9 . cell = [[DetailCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
10. }**
11. return cell;
12.}
我的DetailCell类是
1.- (DetailCell*)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
2. if (self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier]){
3. itemImg = [[UIImageView alloc] initWithFrame:CGRectMake(20 , 20, 50 , 70)];
4 itemName = [[UILabel alloc] initWithFrame:CGRectMake(100, 0 , 100 , 50)];
5. itemDesp = [[UILabel alloc] initWithFrame:CGRectMake(100, 40, 1000, 20)];
6 itemSize = [[UILabel alloc] initWithFrame:CGRectMake(100, 60, 100 , 20)];
7 itemPrice = [[UILabel alloc] initWithFrame:CGRectMake(200, 60, 100 , 20)]; }
8. [itemImg setImage:[UIImage imageNamed:@"large/dresses/02/71EU6.png"]] ;
9. itemName.text = @"Dresses";
10. itemDesp.text = @"Description";
11. itemSize.text = @"S";
12. itemPrice.text = @"$99";
13. itemSize.textColor = [UIColor purpleColor];
14. [self.contentView addSubview:itemImg];
15. [self.contentView addSubview:itemName];
16. [self.contentView addSubview:itemDesp];
17. [self.contentView addSubview:itemSize];
18. [self.contentView addSubview:itemPrice];
19. return self;
20. }
要在我的表格行上显示img或文本,我在UIImageView上设置了img + text,在 DetailCell 中设置了Label(第8行---> DetailCell第13行)。 但是,当我阅读了一些读数并且我意识到人们使用诸如DetailCell之类的类来创建框架+为UIImageView + Label添加属性。最后,他们将在 myClass.m 中的单元格上显示图像或文本。 这让我感到困惑,因为我们应该在 MyClass.m 或 DetailCell.m 为UIImageView设置img。 请告诉我这个问题。感谢。
答案 0 :(得分:0)
如果单元格不是零,则不起作用。您通常会根据节或行配置单元格。您想要自定义哪些单元格?假设您希望第一个单元格像这样设置,而其他单元格不是......
switch (indexPath.row) {
case 0:
cell = [[DetailCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
break;
default:
/*
* Configure the rest of the cells...
*
* Use case 1, 2, 3, 4, etc. as needed.
* You can then use default to set the default configuration
*/
break;
}
您可以尝试这样的方法。还要确保你没有这个:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 1;
}
这是默认设置,将限制您可以拥有的单元格数量。如果您有多个部分,请使用类似于上一个示例中使用的switch语句。