如何更改自定义单元格的属性?

时间:2014-01-09 04:05:05

标签: ios objective-c uitableview interface-builder

我知道这很简单,但我找不到简单的答案!我有一个常规的UITableView,我只是在自定义单元格中添加了一个文本视图。我不确定如何在cellForRowAtIndexPath中访问此textview。我试着把它变成一个iboutlet,但是当我进行单元格时它没有出现。??!?!?!?。也重新设置重用。有什么想法吗?

编辑:我也在ib中完成了所有连接

在.h文件中......

@property(nonatomic, strong) IBOutlet UITextView *myTextView;

在.m文件中......

@synthesize myTextView = _myTextView;
    static NSString *CellIdentifier = @"all_table_reuse_identifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if (nil == cell) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    NSLog(@"%s", __PRETTY_FUNCTION__);
}

问题是我应该可以做cell.myTextView,但它不存在

3 个答案:

答案 0 :(得分:1)

例如

    static   NSString *cellIdentifier= @"Cell";
      CustomCell *cell=[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
        if (cell == nil) {
            cell=[[[NSBundle mainBundle]loadNibNamed:@"CustomCell" owner:self options:nil]objectAtIndex:0];
        }
cell.myTextView.text=@"your text";

答案 1 :(得分:0)

可能这就是你想要的。

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.textLabel.text = @"Why so serious?";
return cell;

编辑:对于自定义单元格 在.h文件中

#import <UIKit/UIKit.h>
@interface TestCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UITextView *tv;

@end

在.m

#import "TestCell.h"

@implementation TestCell

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        // Initialization code
    }
    return self;
}
-(void) setFrame:(CGRect)frame
{
    float inset = 20.0f;
    frame.origin.x += inset;
    frame.size.width -= 2 * inset;
    [super setFrame:frame];
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    [super setSelected:selected animated:animated];
}

@end

在CellForRowAtIndexPath

TestCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[TestCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.tv.text = @"This is textview";
return cell;

希望这有助于......:)

答案 2 :(得分:0)

这样做,

YourCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[YourCustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell. myTextView.text = @"My TextView";
return cell;