gpt4 book ai didi

objective-c - Objective-C : How to create custom/static table view cells via code

转载 作者:可可西里 更新时间:2023-11-01 05:07:04 24 4
gpt4 key购买 nike

我正在尝试使用代码(不带 Nib )创建 3 个表格 View 单元格。我在使代码正常工作时遇到了一些麻烦。我想我没有得到正确的方法。任何人都可以建议我前进的正确方法吗?对此的任何帮助将不胜感激!

谢谢!

郑和

我的代码片段如下:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{
// Return the number of sections.
return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return 3;
}


// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
int row = [indexPath row];

UITableViewCell *startCell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
UITableViewCell *durationCell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
UITableViewCell *radiusCell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];

startCell.textLabel.text = @"Start:";
durationCell.textLabel.text = @"Duration:";
radiusCell.textLabel.text = @"radius";


if (row == 0)
{
return startCell;
}
else if (row == 1)
{
return durationCell;
}

return radiusCell;
}

编辑(2011 年 5 月 19 日)

看完您的回答后,我仍然无法在我的表格 View 中显示任何单元格。这是因为我初始化表格的方式吗?

//Initialization
UITableView *tv = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.settingsView.frame.size.height)
style:UITableViewStyleGrouped];

self.tableView = tv;

[self.view addSubview:tableView];

之后我有一个动画来展开 tableView

[UIView animateWithDuration:0.3 animations:^{

[self.tableView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height-self.picker.frame.size.height)];
}];

你们看到上面的任何问题了吗?是什么导致我的单元格显示失败?

谢谢!

最佳答案

在您的 UITableView 初始化代码中,我没有看到您在哪里设置 TableView delegatedataSource。这当然是问题的一部分。根据 Apple 的 documentation :

A UITableView object must have an object that acts as a data source and an object that acts as a delegate; typically these objects are either the application delegate or, more frequently, a custom UITableViewController object. The data source must adopt the UITableViewDataSource protocol and the delegate must adopt the UITableViewDelegate protocol. The data source provides information that UITableView needs to construct tables and manages the data model when rows of a table are inserted, deleted, or reordered. The delegate provides the cells used by tables and performs other tasks, such as managing accessory views and selections.

这是你可以尝试做的:

//Initialization
UITableView *tv = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.settingsView.frame.size.height)
style:UITableViewStyleGrouped];

// assuming that your controller adopts the UITableViewDelegate and
// UITableViewDataSource protocols, add the following 2 lines:

tv.delegate = self;
tv.dataSource = self;


self.tableView = tv;

[self.view addSubview:tableView];

关于objective-c - Objective-C : How to create custom/static table view cells via code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6049355/

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