3

UITableViewに独自の単純なスタイルのセルを実装しようとしましたが、区切り文字に問題があります。通常のビューではうまく機能しますが、セルを選択すると消えます。customSelectビューセパレーターに追加しようとしましたが、どこにもセパレーターが表示されません。選択したセルにセパレータを追加するにはどうすればよいですか?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *MyCellIdentifier = @"MyCellIdentifier";

    UITableViewCell *cell = [wallMenuTableView dequeueReusableCellWithIdentifier:MyCellIdentifier];

    if(cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyCellIdentifier];

        MenuItemModel *mItem = [menu.menuPositions objectAtIndex:indexPath.row];
        cell.textLabel.text = mItem.displayName;
        cell.textLabel.textColor = [UIColor colorWithRed:0.70 green:0.70 blue:0.70 alpha:1.0];
        cell.textLabel.backgroundColor = [UIColor clearColor];
        cell.textLabel.font = [UIFont fontWithName:@"ArialMT" size:16];
        cell.textLabel.shadowColor = [UIColor blackColor];
        cell.textLabel.shadowOffset = CGSizeMake(0.0, 1.0);

        customSeparator = [[UIView alloc] initWithFrame:CGRectMake(0, (cell.frame.origin.y), 320, 2)];
        customSeparator.backgroundColor=[UIColor blackColor];
        [customSeparator.layer setShadowOffset:CGSizeMake(0.0, 0.8)];
        [customSeparator.layer setShadowOpacity:0.8];
        [customSeparator.layer setShadowRadius:0.8];
        [customSeparator.layer setShadowColor:[UIColor grayColor].CGColor];
        [cell.contentView addSubview:customSeparator];

        customSelect = [[UIView alloc] initWithFrame:CGRectMake(0, (cell.frame.origin.y+2), cell.frame.size.width, cell.frame.size.height)];
        //[customSelect addSubview:customSeparator];
        customSelect.backgroundColor = [UIColor clearColor];
        [cell setSelectedBackgroundView:customSelect];

    }

    return cell;
}

そして現在の結果:

ここに画像の説明を入力してください

4

3 に答える 3

7

セパレータには、単純なUIViewの代わりにUIImageViewを使用してください。backgroundColor値の代わりにImage値(これは重要です!)を設定し、拡大縮小して画像を拡大します。

于 2012-09-05T16:24:10.607 に答える
0

たぶんあなたのcostumSelectはセルのcontentViewの下にあります。以前にそのような動作を実装しましたが、UITableViewCellをサブクラス化しました。カスタムセルのsetSelectedメソッドをオーバーライドしてみてください。

于 2012-08-15T14:27:58.163 に答える
-1

tableView.separatorColor(およびtableView.separatorStyle)を使用して、対照的なセパレーターの色を設定します。セル内に独自の区切り文字を描画する場合は、separatorStyle=UITableViewCellSeparatorStyleNoneを設定します。さらに、selectionStyleをUITableViewCellSelectionStyleNoneに設定すると、おそらく役に立ちます

于 2012-08-15T14:37:34.023 に答える