UITableViewCell-如何更改selectedBackgroundView,默认ImageView,textLabel,detailTextLabel框架

Anj*_*ula 4 objective-c uitableview ios

我正在创建行高100的tableview,每行之间我想要一个5像素的间隙.对于每一行,我在行的第95个'y'位置添加uiview(宽度:320px,高度:1px).现在一切都很顺利.但是当我选择单元格时,行选择背景视图覆盖整行i.但我想将行选择后备视图高度设置为95.

我尝试了以下方式,cellForRowAtIndexPath但没有用,请帮助我.

cell.selectedBackgroundView.frame = CGRectMake (0, 0, 320, 95);
Run Code Online (Sandbox Code Playgroud)

Anj*_*ula 13

谢谢你的回答,终于得到了解决方案.

我们可以通过创建自定义单元格来调整selectedBackgroundView框架.解决问题的步骤.

  1. 首先,我们必须使用UiTableViewCell作为子类创建类
  2. 内,根据layoutSubviews方法,我们可以改变tableviewcell相关视帧那些selectedBackgroundView,defalut imageView,textLabel,detailTextLabel

    要更改selecteddBackgroundView框架

     - (void )layoutSubviews {
    // always try to set frame in layoutSubviews
    [super layoutSubviews];
    self.selectedBackgroundView.frame = CGRectMake(10, 0, self.frame.size.width - 20, 88);
     }
    
    Run Code Online (Sandbox Code Playgroud)

    要更改textLabel,detailTextLabel框架

        - (void)layoutSubviews {// always try to set frame in layoutSubviews
        [super layoutSubviews];
        self.textLabel.frame = CGRectMake(0, 0, 50, 20);
        self.detailTextLabel.frame = CGRectMake(55, 0, 225, self.frame.size.height);
    
       }
    
    Run Code Online (Sandbox Code Playgroud)