Tho*_*oos 126 uitableview ios
我想知道如何改变UITableViewCell任何想法的蓝色突出显示/选择颜色?
zon*_*ble 209
您可以通过多种方式更改突出显示颜色.
更改单元格的selectionStyle属性.如果将其更改为UITableViewCellSelectionStyleGray,则为灰色.
改变selectedBackgroundView财产.实际上创建蓝色渐变的是一个视图.您可以创建视图并绘制您喜欢的内容,并将视图用作表格视图单元格的背景.
T D*_*vey 144
Zonble已经提供了一个很好的答案.我认为包含一个简短的代码片段来添加UIView到将作为选定背景视图显示的tableview单元格可能会很有用.
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
    UIView *selectionColor = [[UIView alloc] init];
    selectionColor.backgroundColor = [UIColor colorWithRed:(245/255.0) green:(245/255.0) blue:(245/255.0) alpha:1];
    cell.selectedBackgroundView = selectionColor;
UITableViewCellselectedBackgroundView是UIView我创造了我的选择背景颜色这对我很有用.感谢Zonble提示.
Ars*_*wez 30
UITableViewCell 有三种默认选择样式: - 
实施情况如下: -
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *) indexPath {
     [cell setSelectionStyle:UITableViewCellSelectionStyleNone];       
}
Nat*_*bot 18
如果要在应用程序范围内更改它,可以将逻辑添加到App Delegate
class AppDelegate: UIResponder, UIApplicationDelegate {
    //... truncated
   func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {
        // set up your background color view
        let colorView = UIView()
        colorView.backgroundColor = UIColor.yellowColor()
        // use UITableViewCell.appearance() to configure 
        // the default appearance of all UITableViewCells in your app
        UITableViewCell.appearance().selectedBackgroundView = colorView
        return true
    }
    //... truncated
}
ali*_*ner 15
在Swift中,使用它 cellForRowAtIndexPath
let selectedView = UIView()
selectedView.backgroundColor = .white
cell.selectedBackgroundView = selectedView
如果您希望每个选择颜色相同UITableViewCell,请使用此选项AppDelegate.
let selectedView = UIView()
selectedView.backgroundColor = .white
UITableViewCell.appearance().selectedBackgroundView = selectedView
Mar*_*fer 11
为了完整性:如果您创建了自己的子类,则UITableViewCell可以实现该- (void)setSelected:(BOOL)selected animated:(BOOL)animated方法,并设置您在内容视图中添加的某个视图的背景颜色.(如果是这种情况)或contentView本身(如果它没有被您自己的一个视图覆盖.
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    if(selected) {
        self.contentView.backgroundColor = UIColor.blueColor;
    } else {
        self.contentView.backgroundColor = UIColor.whiteColor;
    }
}
(没用?适合小宽度的源代码DIV :)
这种方法比使用selectedBackgroundView有两个优点,它使用更少的内存和更少的CPU,除非你显示数百个单元格,否则你甚至不会注意到.
sam*_*ize 10
我必须将选择样式设置UITableViewCellSelectionStyleDefault为自定义背景颜色才能工作.如果是任何其他样式,将忽略自定义背景颜色.在iOS 8上测试过.
单元格的完整代码如下:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"MyCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    // This is how you change the background color
    cell.selectionStyle = UITableViewCellSelectionStyleDefault;
    UIView *bgColorView = [[UIView alloc] init];
    bgColorView.backgroundColor = [UIColor redColor];
    [cell setSelectedBackgroundView:bgColorView];
    return cell;
}
小智 5
@IBDesignable class UIDesignableTableViewCell: UITableViewCell {
  @IBInspectable var selectedColor: UIColor = UIColor.clearColor() {
    didSet {
      selectedBackgroundView = UIView()
      selectedBackgroundView?.backgroundColor = selectedColor
    }
  }
}
在故事板中,将 UITableViewCell 的类设置为 UIDesignableTableViewCell,在属性检查器上,您可以将单元格的选定颜色更改为任何颜色。
您可以将其用于所有单元格。这就是您的属性检查器的外观。
斯威夫特3.0 / 4.0
如果您创建了自己的自定义单元格,则可以更改awakeFromNib()所有单元格的选择颜色:
 override func awakeFromNib() {
    super.awakeFromNib()
    let colorView = UIView()
    colorView.backgroundColor = UIColor.orange.withAlphaComponent(0.4)
    self.selectedBackgroundView = colorView
}
根据@user的回答,您可以将此扩展名添加到应用程序代码中的任何位置,并直接在故事板编辑器中为应用程序的每个单元格选择颜色:
@IBDesignable extension UITableViewCell {
    @IBInspectable var selectedColor: UIColor? {
        set {
            if let color = newValue {
                selectedBackgroundView = UIView()
                selectedBackgroundView!.backgroundColor = color
            } else {
                selectedBackgroundView = nil
            }
        }
        get {
            return selectedBackgroundView?.backgroundColor
        }
    }
}
| 归档时间: | 
 | 
| 查看次数: | 119190 次 | 
| 最近记录: |