我想在自定義背景的分組後的UITableView後添加一個影子。這個很難(硬。我失敗了。我一直在試驗細胞層陰影參數,但是我做到了,陰影最終覆蓋了另一側的另一個細胞。我只想讓陰影均勻地出現在tableview中每個部分的輪廓之外。與影子分組的UITableView
如果有人有關於如何解決這個最簡單的方法的想法,將不勝感激!
我想在自定義背景的分組後的UITableView後添加一個影子。這個很難(硬。我失敗了。我一直在試驗細胞層陰影參數,但是我做到了,陰影最終覆蓋了另一側的另一個細胞。我只想讓陰影均勻地出現在tableview中每個部分的輪廓之外。與影子分組的UITableView
如果有人有關於如何解決這個最簡單的方法的想法,將不勝感激!
供將來參考;在最後,我解決它通過使用在其layoutSubviews方法增加了一個空的,但是遮蔽層的自定義的UITableView亞類:
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
你能提供更多細節嗎? – cbrauchli 2011-11-08 06:16:50
@eliego請提供更多的細節,因爲其他人可能正在尋找如何做到這一點。 – samvermette 2012-03-10 07:23:24
對不起 - 代碼現在添加。 – eliego 2012-07-24 10:14:18
「tableview的輪廓外」是指每個「分組」部分? – theraven 2011-05-25 01:54:51
是的,確切地說。 Thankyou澄清 – eliego 2011-05-25 08:04:21
我嘗試了另一種方法:在單元格背景視圖中使用具有CGContextSetShadowWithColor的自定義繪圖,但陰影會被裁剪到表格的邊界上。所以,迄今爲止也沒有成功。 – alexleutgoeb 2011-08-19 19:42:22