関連する回答を読んだことがありますが、何も処理されていません。初めてテーブルが読み込まれると、すべてが正常ですが、テーブルをスクロールするとすべてが変更されます。誰かが助けてくれたら?ここに私のコードです。私は再びダウンとアップテーブルをスクロールした後UITableViewCellは、テーブルビューをスクロールするときにデータとデザインを変更します
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [[arrReportList objectAtIndex:section]count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
SummaryReportTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"summaryCell"];
if (cell == nil) {
cell = [[[NSBundle mainBundle] loadNibNamed:@"SummaryReportTableViewCell" owner:self options:nil] objectAtIndex:0];
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
[cell setCellLayoutWithArray:[[arrReportList objectAtIndex:indexPath.section]objectAtIndex:indexPath.row]];
...
...
}
SummaryReportTableViewCell.m
-(void)setCellLayoutWithArray :(NSMutableArray *)array {
[btnViewPieChart setImage:[CommonMethod createIconWithIconName:@"fa-pie-chart" ForegroundColor:kColorEnableIcon BGColor:[UIColor clearColor] size:CGSizeMake(25, 25)] forState:UIControlStateNormal];
btnDomain.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
btnDomain.titleLabel.textAlignment = NSTextAlignmentLeft;
btnDomain.contentEdgeInsets = UIEdgeInsetsMake(0, 8, 0, 0);
[btnDomain setTitle:[array valueForKey:@"DomainName"] forState:UIControlStateNormal];
[btnGoal setTitle:[array valueForKey:@"Goals"] forState:UIControlStateNormal];
[self UIButton:btnGoal withValue:btnGoal.titleLabel.text];
}
-(void)UIButton :(UIButton *)btn withValue:(NSString *)value {
if ([btn.titleLabel.text integerValue] > 0) {
[btn setBackgroundColor:kColorTabMenuBG];
btn.titleLabel.font = kFontBold(16);
btn.titleLabel.textColor = kColorTabDeActiveMenu;
btn.userInteractionEnabled = true;
} else {
[btn setBackgroundColor:[UIColor whiteColor]];
btn.titleLabel.font = kFontNormal(16);
btn.titleLabel.textColor = [UIColor blackColor];
btn.userInteractionEnabled = false;
}
}
画像初めて
同じデータ
ボタンをリセットするだけで、setCellLayoutWithArrayの変更が反映されます。例えば。クリックしたときにフォントを太字に変更した場合は、通常にリセットしてください。 –
@Krutikaそれは再利用性の問題です。 'cellForRowAtIndexPath'が呼び出されるたびに、要件に基づいてデザインをロード、アンロード、および変更する必要があります。 – KiranJasvanee
@KiranJasvaneeあなたがcell view controllerで書いたUI chnagesを意味し、cellForRowメソッドのmain view controllerにそこにいる必要がありますか? –