Wri*_*sCS 8 uitableview uiview ios
我已经阅读并尝试了一些我在StackOverflow上找到的答案.我也从博客中读过并试过一些东西,但似乎没有什么能达到我想要的效果.
我创建了一个UIView
并将其背景颜色设置为我想要的UITableViewCell
选择颜色(而不是标准的蓝色或灰色选择颜色).我将它添加UIView
到我的单元格中selectedBackgroundView
,这很好用,我的单元格在用户选择时更改为所需的颜色.
这种方法在Plain上很有效UITableViews
; 在Grouped上不太好.在分组上UITableView
,第1个和最后一个单元格不符合剪辑/蒙版界限,如下面的屏幕截图所示.
我知道没有办法只围绕左上角和右上角.
我想严格按代码执行此操作,无需图像.
有没有人知道一个很好的小工作来改变selectedBackgroundView
一个UITableViewCell
只使用UIView
而不是图像的颜色和使第一个和最后一个单元格符合圆角边界?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString * CellIdentifier = @"Cell";
WCSBadgedCell * cell = [[WCSBadgedCell alloc] initWithStyle:UITableViewCellStyleSubtitle andBadgeStyle:0 reuseIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[WCSBadgedCell alloc] initWithStyle:UITableViewCellStyleDefault andBadgeStyle:0 reuseIdentifier:CellIdentifier];
}
UIView *bgColorView = [[UIView alloc] init];
[bgColorView setBackgroundColor:DARKBROWN];
[bgColorView setClipsToBounds: YES];
[cell.layer setMasksToBounds:YES];
[cell setSelectedBackgroundView:bgColorView];
[cell.textLabel setText: @"Testing a Cell"];
return cell;
}
Run Code Online (Sandbox Code Playgroud)
我接受了CodaFis的答案,因为他添加了一条评论,指出了一个相当不错(但很冗长)的解决方案.我不得不做一些改进,但最后,我现在有了我需要的selectedBackgroundView,它绕过第一个和最后一个单元格的角落,再次感谢!
由于单元格的复杂性,我假设您正在使用 UITableViewCell 子类。这就是我一直在做的:
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]))
{
self.clipsToBounds = YES;
UIView* bgView = [[UIView alloc] init];
bgView.backgroundColor = [UIColor colorWithWhite:0.f alpha:0.25f];
self.selectedBackgroundView = bgView;
//other code
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
这会在单元格上产生一种深灰色覆盖层,而不是图像!
在您的情况下,您选择的单元格的确切颜色(感谢方便的花花公子数字色度计)将是
[UIColor colorWithRed:106.0f/255.0f green:51.0f/255.0f blue:6.0f/255.0f alpha:1.0f];
Run Code Online (Sandbox Code Playgroud)
白色的文字是
- (void)setSelected:(BOOL)sel animated:(BOOL)animated
{
[super setSelected:sel animated:animated];
if (sel)
{
self.textLabel.textColor = [UIColor whiteColor];
}
else
{
self.textLabel.textColor = [UIColor colorWithRed:(105.f/255.f) green:(50.f/255.f) blue:(6.f/255.f) alpha:1.f];
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3364 次 |
最近记录: |