我正在尝试使用自定义背景在我的分组UITableView后面添加一个阴影。这个很难(硬。我失败了。我一直在试验细胞层阴影参数,但是无论如何,阴影最终覆盖了一侧的另一个细胞。我只是希望阴影在tableview的每个部分的轮廓之外均匀显示。
如果有人有关于如何以最简单的方式解决这个问题的想法,那将非常感激!
答案 0 :(得分:-2)
供将来参考;最后,我通过使用自定义的UITableView子类解决了这个问题,该子类在layoutSubviews方法中添加了一个空的但有阴影的图层:
ShadowTableView.h:
@interface ShadowTableView : UITableView {
CALayer *shadowLayer;
}
@end
ShadowTableView.m:
#import "ShadowTableView.h"
#import <QuartzCore/QuartzCore.h>
@implementation ShadowTableView
- (id)initWithFrame:(CGRect)frame style:(UITableViewStyle)style {
self = [super initWithFrame:frame style:style];
if (self) {
shadowLayer = [[CALayer alloc] init];
shadowLayer.backgroundColor = [kCellBgColor CGColor];
shadowLayer.cornerRadius = 10.0;
shadowLayer.shadowOpacity = 1.6;
shadowLayer.shadowOffset = CGSizeMake(0, 3);
shadowLayer.shadowColor = [[UIColor blackColor] CGColor];
shadowLayer.shadowRadius = 8.0;
}
return self;
}
- (void)dealloc {
[shadowLayer release];
[super dealloc];
}
- (void)layoutSubviews {
[super layoutSubviews];
if (!shadowLayer.superlayer) {
[self.layer insertSublayer:shadowLayer atIndex:0];
}
shadowLayer.frame = CGRectMake(10.0, 10.0, 300.0,
self.rowHeight * [self.dataSource tableView:self numberOfRowsInSection:0] + 1);
}
@end