Iphone 分组UITableView和图像遮罩
因此,对于分组的UITableView,我希望放置在UITableViewCell最上面一行的imageView中的图像是这样的(来自iTunes应用程序): 相反,我得到的是: 该部分似乎不会遮罩单元格的图像视图。为什么不呢?我已经尝试了我能想到的一切。据我所知,这是一个沼泽标准设置。UITableView是UITableViewController的一部分,没有自定义UITableViewCellIphone 分组UITableView和图像遮罩,iphone,ios,uitableview,Iphone,Ios,Uitableview,因此,对于分组的UITableView,我希望放置在UITableViewCell最上面一行的imageView中的图像是这样的(来自iTunes应用程序): 相反,我得到的是: 该部分似乎不会遮罩单元格的图像视图。为什么不呢?我已经尝试了我能想到的一切。据我所知,这是一个沼泽标准设置。UITableView是UITableViewController的一部分,没有自定义UITableViewCell 还有其他人碰到过这个吗?没有自定义UITableViewCells,有没有一种简单的方法可
还有其他人碰到过这个吗?没有自定义UITableViewCells,有没有一种简单的方法可以实现这一点?我试过了,但他没有遮住顶部(和底部)行中的图像。希望我不是很明显-但是你试过设置
imageView.clipstobunds
(不是这样,我只是试过了。)
这是一条艰难的道路
#import <QuartzCore/QuartzCore.h>
cell.imageView.layer.masksToBounds = YES;
cell.imageView.layer.cornerRadius = 9.0;
#导入
cell.imageView.layer.masksToBounds=是;
cell.imageView.layer.cornerRadius=9.0;
(至少我的模拟器设置为“视网膜”时是9.0。)
这就给你留下了一个有四个圆角的图像,这并不是你想要的,但已经是一半了。现在,如果剪切图像,然后进行两阶段替换,首先用矩形(右上角和右下角)替换图像的右边缘,然后用小矩形替换左下角,您将得到所需的内容。我知道,但我不认为有一个简单的答案
我认为最正确的做法可能是将其合成为一个UIImage,其中所需的角点是透明的,然后在cellForRowAtIndexPath中,如果它是组第一个或组最后一个单元格,则只应用特殊的UIImage而不是普通的image
CGContextClipToMask看起来就是要使用的。这与Adam Eberbach的答案相似,但略有不同(在iOS 5上为我工作):
#导入
...
-(void)tableView:(UITableView*)tableView将显示单元格:(UITableViewCell*)用于rowatindexpath的单元格:(NSIndexPath*)indexPath
{
cell.contentView.layer.masksToBounds=是;
cell.contentView.layer.cornerRadius=9.0f;
}
我刚刚将其添加到我的UITableView委托中,分组的单元格剪裁了超出其边界的子视图。在下面的stackoverflow答案中,有更好的解决方案只围绕左上角和/或左下角: 及
ui视图。剪贴簿是矩形的。我确实尝试了imageView.layer.masksToBounds
,它尊重任何角落半径,但没有运气。有趣的解决方案,谢谢,亚当。经过这么多的努力,我可能只想用我想要的屏蔽行为将UIImageView子类化,并在UITableViewCell上设置imageView属性。还是很惊讶它不能开箱即用。
#import <QuartzCore/QuartzCore.h>
...
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
cell.contentView.layer.masksToBounds = YES;
cell.contentView.layer.cornerRadius = 9.0f;
}