可编辑的UITableView,每个单元格上都有一个文本字段

时间:2011-08-15 11:45:21

标签: objective-c ios uitableview

我是iOS世界的新手,我想知道如何制作一个UITableView自定义单元格,其外观和行为与您尝试在设备上配置某些WiFi连接时的单元格相似。 (你知道UITableView的单元格包含UITextField s的蓝色字体,你设置了ip地址和所有东西......)。

1 个答案:

答案 0 :(得分:9)

要制作自定义单元格布局确实涉及一些编码,所以我希望不要吓到你。

首先要创建一个新的UITableViewCell子类。我们称之为InLineEditTableViewCell。您的界面InLineEditTableViewCell.h可能如下所示:

#import <UIKit/UIKit.h>

@interface InLineEditTableViewCell : UITableViewCell

@property (nonatomic, retain) UILabel *titleLabel;
@property (nonatomic, retain) UITextField *propertyTextField;

@end

您的InLineEditTableViewCell.m可能如下所示:

#import "InLineEditTableViewCell.h"

@implementation InLineEditTableViewCell

@synthesize titleLabel=_titleLabel;
@synthesize propertyTextField=_propertyTextField;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        // Here you layout your self.titleLabel and self.propertyTextField as you want them, like they are in the WiFi settings.
    }
    return self;
}

- (void)dealloc
{
    [_titleLabel release], _titleLabel = nil;
    [_propertyTextField release], _propertyTextField = nil;
    [super dealloc];
}

@end

接下来,您可以像在视图控制器中一样设置UITableView。执行此操作时,您必须实现UITablesViewDataSource协议方法- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath。在为此插入实现之前,请记住视图控制器中的#import "InLineEditTableViewCell"。执行此操作后,实现如下:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    InLineEditTableViewCell *cell = (InLineEditTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"your-static-cell-identifier"];

    if (!cell) {
        cell = [[[InLineEditTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"your-static-cell-identifier"] autorelease];
    }

    // Setup your custom cell as your wish
    cell.titleLabel.text = @"Your title text";
}

就是这样!您现在在UITableView

中有自定义单元格 祝你好运!