我已通过drawRect
@interface FTChartsView : UIView
@implementation FTChartsView
-(void)drawRect:(CGRect)rect
{
...
}
我还将子类化为UITableViewCell
@interface FTSummaryCellView : UITableViewCell
...
现在在ViewController中,生成单元格时:
- (void)viewDidLoad
{
[super viewDidLoad];
UINib *nib = [UINib nibWithNibName:@"FTSummaryCellView" bundle:nil];
[[self tableView] registerNib:nib forCellReuseIdentifier:@"FTSummaryCellView"];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
FTSummaryCellView *cell = [tableView dequeueReusableCellWithIdentifier:@"FTSummaryCellView"];
FTChartsView *chart = [[FTChartsView alloc] init];
[cell addSubview:chart];
return cell;
}
单元格将chatrView添加为子视图。然而,chartView的drawRect
永远不会破坏,因此永远不会显示。
我在这里想念的是什么?
答案 0 :(得分:1)
您忘记了setFrame
。
- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
MyCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCell"];
TView *chart = [[TView alloc] initWithFrame:CGRectMake(10, 10, 30, 30)];
[cell addSubview:chart];
return cell;
}
完美适合我。
Ty [[self tableView] registerNib:nib forCellReuseIdentifier:@"FTSummaryCellView"];
。我从来不知道这种方法)
您必须像我所知,将子视图添加到内容视图。但是如果没有这一点,一切都适合我。
[cell.contentView addSubview:chart];
答案 1 :(得分:0)
这是在黑暗中刺伤...将FTChartView添加到单元格后...也许可以尝试:
[chart setNeedsDisplay];
如果你有自定义的drawRect方法,有时会有效。
甚至可能
[chart.view setNeedsDisplay];