ios – 关于如何将UIView屏蔽为UITableViewCell selectedBackgroundView的明确答案

ios – 关于如何将UIView屏蔽为UITableViewCell selectedBackgroundView的明确答案,第1张

概述我已经阅读并尝试了一些我在StackOverflow上找到的答案.我也从博客中读过并试过一些东西,但似乎没有什么能达到我想要的效果. 我创建了一个UIView并将其背景颜色设置为我想要的UITableViewCell选择颜色(而不是标准的蓝色或灰色选择颜色).我将这个UIView添加到我的单元格的selectedBackgroundView中,这很好用,我的单元格在用户选择时更改为所需的颜色. 这 我已经阅读并尝试了一些我在StackOverflow上找到的答案.我也从博客中读过并试过一些东西,但似乎没有什么能达到我想要的效果.

我创建了一个UIVIEw并将其背景颜色设置为我想要的UItableVIEwCell选择颜色(而不是标准的蓝色或灰色选择颜色).我将这个UIVIEw添加到我的单元格的selectedBackgroundVIEw中,这很好用,我的单元格在用户选择时更改为所需的颜色.

这种方法适用于Plain UItableVIEws;在Grouped上不太好.在分组的UItableVIEw上,第1个和最后一个单元格不符合剪辑/蒙版界限,如下面的屏幕截图所示.

我知道没有办法只围绕左上角和右上角.

我想严格按代码执行此 *** 作,无需图像.

有没有人知道一个很好的小工作来改变UItableVIEwCell的selectedBackgroundVIEw颜色只使用UIVIEw而不是图像AND使第一个和最后一个单元格符合圆角边界?

- (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;}

截图

我接受了CodaFis answer,因为他添加了一条评论,指出了一个相当不错(但很冗长)的解决方案.我不得不进行相当多的改造,但最后,我现在有了我需要的selectedBackgroundVIEw,它绕过第一个和最后一个单元格的角落,再次感谢!

Here is a n example of how I achieved this.

解决方法 我假设您使用的是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;}

这会在单元格上产生一种深灰色覆盖,而不是所需的图像!

在您的情况下,所选单元格的确切颜色(由于方便的花花公子数字色度计)将是

[UIcolor colorWithRed:106.0f/255.0f green:51.0f/255.0f blue:6.0f/255.0f Alpha:1.0f];

而白色文本将是

- (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];      }}
总结

以上是内存溢出为你收集整理的ios – 关于如何将UIView屏蔽为UITableViewCell selectedBackgroundView的明确答案全部内容,希望文章能够帮你解决ios – 关于如何将UIView屏蔽为UITableViewCell selectedBackgroundView的明确答案所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1104475.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存