菜鸟教程小白 发表于 2022-12-12 11:42:14

ios - 突出显示/选择时的 UITableViewCell 背景颜色


                                            <p><p>我希望我的单元格文本颜色在点击时改变,而不是背景颜色。</p>

<p><strong>我希望单元格背景始终为白色,只有文本颜色在选中时发生变化。</strong></p>

<p>我已经看到了很多关于如何做到这一点的答案......</p>

<pre><code>UIView *bgColorView = [ init];
bgColorView.backgroundColor = ;
;
</code></pre>

<p>...但是创建的 View 在单元格分隔符之上运行。</p>

<p> <a href="/image/VSI2i.jpg" rel="noreferrer noopener nofollow"><img src="/image/VSI2i.jpg" alt="enter image description here"/></a> </p>

<p>并且要使用 <code>cell.textLabel.highlightedTextColor = ;</code> 来更改 textColor,我不能有 <code>cell.selectionStyle = UITableViewCellSelectionStyleNone;</code>,所以我需要弄清楚一些事情。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>如果你想显示单元格的分隔符,你可能需要这个:</p>

<p>添加此代码:</p>

<pre><code>- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
...

cell.selectionStyle = UITableViewCellSelectionStyleDefault;
cell.textLabel.highlightedTextColor = ;

UIView *backgroudView = [initWithFrame:CGRectMake(0, 1, tableView.bounds.size.width, - 2)];
backgroudView.backgroundColor = ;

UIView *placeholderView = [ initWithFrame:CGRectMake(0, 0, 1, 1)];
placeholderView.backgroundColor = ;
;
cell.selectedBackgroundView = placeholderView;

...
}
// These codes are used to show the separatorView when the cell didSelected
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    void (^showSeparatorView)(UITableViewCell *cell) = ^(UITableViewCell *cell){
      for (id obj in cell.subviews) {
         if(){
               UIView *view = (UIView *)obj;
               view.hidden = NO;
         }
      }
   };

    UITableViewCell *cell = ;
    showSeparatorView(cell);
    if (indexPath.row &gt; 0)
    {
      UITableViewCell *cell = ];
      showSeparatorView(cell);
    }
...
}

// These codes are used to show the separatorView when the cell didHightlight
- (void)tableView:(UITableView *)tableView didHighlightRowAtIndexPath:(NSIndexPath *)indexPath
{
    void (^showSeparatorView)(UITableViewCell *cell) = ^(UITableViewCell *cell){
      for (id obj in cell.subviews) {
            if(){
               UIView *view = (UIView *)obj;
               view.hidden = NO;
            }
      }
    };

    UITableViewCell *cell = ;
    showSeparatorView(cell);
    if (indexPath.row &gt; 0)
    {
      UITableViewCell *cell = ];
      showSeparatorView(cell);
    }
}
</code></pre>

<p>希望这些对你有帮助!</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 突出显示/选择时的 UITableViewCell 背景颜色,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/38065788/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/38065788/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 突出显示/选择时的 UITableViewCell 背景颜色