我已經看到了這個問題之前發佈的,但我無法找到答案..setNeedsDisplay並不總是調用的drawRect
正如預期的那樣,得到的drawRect稱爲程序啓動時自動運行。然而,當我打電話[自我setNeedsDisplay]的drawRect沒有得到再利用也許是自己不正確調用,我不明白爲什麼...
//DrawView.m
[self setNeedsDisplay];
-(void)drawRect:(CGRect)rect{
NSLog(@ "Called_1");
//DRAW A PATH
}
。我也嘗試過使用DrawImage,但它仍然不起作用。
//DrawView.h
@interface DrawView : UIView {
UIImageView *drawImage;
}
//DrawView.m
-(id)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
if (self) {
drawImage = [[UIImageView alloc] initWithImage:nil];
drawImage.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
[self addSubview:drawImage];
}
return self;
}
值除非視圖在用戶界面中可見,否則不會發送drawRect。 –
好點。謝謝!我沒有看到它,因爲它發生在另一層。我有多個UIViews堆疊在一起。你知道我可以如何發送SetNeedsDisplay命令到一個特定的UIView?現在我無法控制形狀的顯示位置。歡呼聲 – jeddi
您需要以某種方式構建一條路徑。你可以使用標籤屬性,然後你可以問容器[view.subviews viewWithTag:5]; –