自定义 UITableViewCell 中的自定义 UIView
我想要子类 UITableViewCell 中的两个自定义(即子类)UIView,如下图所示。这两个 UIView 是同一个子类。
自定义 UIView 和 TableViewCell 都有关联的 xib。
我希望得到一些有关解决此问题的最佳方法的建议。我以这种方式加载 TableViewCell。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath (NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"CustomCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:NULL];
// CustomCell is an IBOutlet connected to the above nib
cell = BLCustomCell;
}
// configure the cell
}
我想在自定义视图中设置插座以轻松显示数据模型中的数据。我需要一个用于自定义视图的视图控制器吗?我无法为自定义视图加载笔尖。 (是的,我意识到上面的代码没有解决这个问题。)如何加载它? TableView 的控制器是否需要自定义视图对象的出口?
谢谢!
I want two custom (i.e. subclassed) UIViews in a subclassed UITableViewCell as shown in the below picture. The two UIViews are the same subclass.
Both the custom UIViews and the TableViewCell have associated xib's.
I would appreciate some advice on the best way to go about this. I load the TableViewCell this way.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath (NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"CustomCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:NULL];
// CustomCell is an IBOutlet connected to the above nib
cell = BLCustomCell;
}
// configure the cell
}
I want to set outlets in the Custom Views to easily display data from my data model. Do I need a view controller for the Custom Views? I'm having trouble getting the nib to load for the Custom Views. (And yes, I realize my code above does not address this issue.) How do I get it to load? Does the TableView's controller need outlets to the Custom View objects?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
处理复杂
UITableViewCell
的最简单方法是创建UITableViewCell
的子类,并使用其自己的连接到子视图的IBOutlet
,然后只需在cellForRowAtIndexPath:
中设置自定义单元格的属性。还有各种其他方法,但这种方法似乎可以很好地分解问题,并扩展到处理更复杂的情况。看看 Matt Drance 写的《iOS Recipes》一书,它很好地涵盖了这个领域。
The simplest way to handle complex
UITableViewCell
s is to create a subclass ofUITableViewCell
, with its ownIBOutlet
s that connect to the subviews, then just set properties of your custom cell incellForRowAtIndexPath:
. There are various other approaches, but this one seems to break down the problem reasonably well, and expands to handle more complex situations.Take a look at the iOS Recipes book by Matt Drance, it cover this area well.