gpt4 book ai didi

iphone - 自定义表格 View 单元格中没有可见 View

转载 作者:行者123 更新时间:2023-12-01 17:41:29 25 4
gpt4 key购买 nike

我正在做一个关于 tableView 的练习和 tableViewCell .而且我在自定义 View 单元格方面遇到了一些问题。

我创建了自己的自定义 tableViewCell .xib 文件称为 newCellView.xib .我需要 .h 和 .m 文件,我选择父类(super class)作为 UITableViewCell .

在我的 View Controller 中称为 TableViewController我正在使用这样的默认单元格创建一个表格。

- (UITableViewCell *)tableView: (UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
{
UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];

cell.textLabel.text = [showNames objectAtIndex:[indexPath row]];
cell.imageView.image = [UIImage imageNamed:[iconArray objectAtIndex:[indexPath row]]];

return cell;
}

一旦我创建了自己的自定义 View 。我进口了 newViewCell.h进入我的 viewController我更新了这样的代码。
- (UITableViewCell *)tableView: (UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
{

static NSString *newCellViewString = @"newCellView";

newCellView *cell = [tableView dequeueReusableCellWithIdentifier:newCellViewString];

//newCellView *cell = [[newCellView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:newCellView];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"newCellView" owner:self options:nil];
cell = (newCellView *)[nib objectAtIndex:0];
}

但是当我运行应用程序时,我看到一个空白页面,就像我没有相关 View 一样。也许我忘了添加一些连接。我什至看不到要查看的空单元格。只有一个白色的空白页。任何帮助都会很棒。谢谢。

编辑其他文件

这是我的 .h 和 .m 文件。
#import <UIKit/UIKit.h>

@interface newCellView : UITableViewCell <UITableViewDelegate>

@property (nonatomic, strong) IBOutlet UILabel *nameLabel;
@property (nonatomic, strong) IBOutlet UIImageView *iconImageView;
@property (retain, nonatomic) IBOutlet UIButton *extendButton;

@end

.m 文件
#import "newCellView.h"

@implementation newCellView

@synthesize nameLabel;
@synthesize extendButton;
@synthesize iconImageView;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
}
return self;
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];

// Configure the view for the selected state
}

- (void)dealloc {
[extendButton release];
[nameLabel release];
[iconImageView release];
[super dealloc];
}
@end

最佳答案

在处理自定义单元格时,我总是尝试将与单元格相关的所有内容封装在 UITableViewCell 子类中(包括 NIB/outlets/..)并使用 tableView registerClass: forCellReuseIdentifier:方法告诉我的表哪个类用于其单元格。

在您的示例中,您可以:

在你的 newCellView.m 中,在单元格初始化中添加 nib 加载:

-(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"newCellView" owner:self options:nil];
self = [nib objectAtIndex:0];

}
return self;
}

确保所有 socket 连接正确。 (即 Nib 中的 UITableViewCell 属于 NewCellView 类,..)

然后在 Controller 的 viewDidLoad 中,您告诉表使用 newCellView 作为其单元格:
[yourTableView registerClass:[newCellView class] forCellReuseIdentifier:@"newCellView"];

最后在 cellForRowAtIndexpath 中:
newCellView *cell = [tableView dequeueReusableCellWithIdentifier:@"newCellView"];

if (cell == nil)
{
cell = [[NewCellView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"newCellView]";
}

关于iphone - 自定义表格 View 单元格中没有可见 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17875353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com