1

UITableViewCell に境界線を追加しています。以下はコードです:

トライ-1:

cell.layer.borderWidth = 1;
cell.layer.borderColor = [UIColor redColor].CGColor;

試行-2:

cell.contentView.layer.borderWidth = 1;
cell.contentView.layer.borderColor = [UIColor redColor].CGColor;

私はこれらの両方の方法を試しました。ここに出力があります。 ここに画像の説明を入力

画像でわかるように、この色は境界セルよりも暗くなるため、境界線は2つのセル間で重なっています。

表の枠線を追加していないのはなぜですか?

  • 問題は、データによると、単一のテーブルで3つの差分カスタムセルを使用していて、特定のセルがロードされていることです
  • したがって、境界線の色を uitableview 全体に追加したり、cellforrowatindexpath でセルの境界線を描画したりできません。その方法では、それがどのタイプのデータであるかを確認しているだけで、それに応じてカスタムセルが読み込まれているためです。

これが私のものcellForRowAtIndexPathです:

- (UITableViewCell*) getTableViewCellForTraining:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath withTrainingInfo:(TrainingInfoiOS*)trainingInfo
{
    BeLearnPlatform& ptr = BeLearnPlatform::GetLearnPlatform();

    static NSString *CustomCellIdentifier = @"CustomCell";
    CustomCell *cell = (CustomCell*)[tableView dequeueReusableCellWithIdentifier:CustomCellIdentifier forIndexPath:indexPath];
    cell.courseNameLabel.text = trainingInfo.courseName;
    cell.courseStartButton.sectionID = indexPath.section;
    cell.courseStartButton.rowID = indexPath.row;
    cell.tag=0;
 ...
}
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        UITableViewCell* cell = nil;
        NSString* dictionaryKey = [self createKeyWithSection:indexPath.section andRow:indexPath.row];
        NSObject* dataObject = [tableViewMappig objectForKey:dictionaryKey];

        if([dataObject isKindOfClass:[MasterCourse class]])
            {
            UITableViewCell* cell = [self getTableViewCellForTraining:tableView cellForRowAtIndexPath:indexPath withTrainingInfo:(MasterCourse*)dataObject];
            return cell;
            }
        else if([dataObject isKindOfClass:[ParentCourse class]])
            {
            UITableViewCell* cell = [self getTableViewCellForParentCourse:tableView cellForRowAtIndexPath:indexPath withTrainingInfo:(ParentCourse*)dataObject];
            return cell;
            }

これに対する解決策を提案してください。

4

2 に答える 2