私は線/ rectを単一のビューで描画する方法を知っています。しかし、私はこの場合失われています: 私はUIView
AとUITableView
を持っています。ビューコントローラーのビューにAが追加され、BがAに追加されました。ご存知のように、UITableView
には枠線がないため、以下はB. の境界に沿って、私はこれらのビューを整理する方法のコードは次のとおりです。UITableViewの線を描く方法
if (_tableView) {
[_tableView release];
_tableView = nil;
}
UITableView * temp = [[UITableView alloc] initWithFrame:tableRect style:UITableViewStylePlain];
temp.delegate = self;
temp.dataSource = self;
temp.showsHorizontalScrollIndicator = NO;
temp.alwaysBounceHorizontal = NO;
self.table = temp;
[temp release];
temp = nil;
[self.table setContentInset:UIEdgeInsetsMake(1, 2, 0, 2)];
[_transparencyView addSubview:self.table];
[self.parentViewController.view addSubview:_transparencyView];
[_transparencyView setNeedsDisplayInRect:tableRect];
_transparencyView
がUIView
から継承ZJTransparencyView
のインスタンスであり、そのファイルを実行するようにされています
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
NSLog(@"%s:%@",__func__,NSStringFromCGRect(rect));
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetStrokeColorWithColor(context, [UIColor cyanColor].CGColor);
CGContextSetLineWidth(context, 2);
CGContextStrokeRect(context, rect);
}
私が会った問題は: テーブルビューを追加してsetNeedsDisplayInRect:
を呼び出すと、drawRect:
に送信されるrectは常に{0,0,320,460}になります。 tableRectは効果がないようです。私はなぜそれが起こるのか分からない。 誰か助けてくれますか?
、ようのUITableViewの境界線を設定します。実際には私も
layer
を使いたいと思っていましたが、その方法は見つかりませんでした。ありがとう。 – scorpiozj