1
我想繪製一個帶邊框的彩色矩形,如果它被選中,但我似乎無法得到邊界繪製。彩色矩形顯示在正確的位置和顏色上,但邊框從不出現。我試圖縮小比例尺來查看它是否以某種方式在視圖的外部裁剪,但那也不起作用。CGContextStrokeRect沒有出現在視圖中
我環顧了一下StackOverflow,但似乎沒有任何與此相關的問題(唯一的候選人是this one,但它涉及圖像,所以我不認爲它可以幫助我)。
- _card是保存有關使用該卡的一些信息來確定如何繪製
- 我知道在代碼if語句是一個屬性:
下面的代碼的幾點說明執行,因爲NSLog的出現在控制檯
這裏是我講的觀點我的drawRect方法(在_card.isSelected的代碼,如果語句是什麼,我相信應該產生的邊界):
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
if ([_card isKindOfClass:[NSNumber class]] && [_card intValue] == -1) {
NSLog(@"No card");
} else if ([_card isKindOfClass:[Card class]]) {
Card *card = _card;
if (card.shouldAnimate) {
[self fadeSelfIn];
}
if ([_card isKindOfClass:[WeaponCard class]]) {
CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);
} else if ([_card isKindOfClass:[ArmorCard class]]) {
CGContextSetFillColorWithColor(context, [UIColor greenColor].CGColor);
}
if (card.isSelected)
CGContextSetStrokeColorWithColor(context, [UIColor purpleColor].CGColor);
CGContextStrokeRect(context, self.bounds);
NSLog(@"Drawing border on selected card with bounds %@, NSStringFromCGRect(self.bounds));
}
CGContextFillRect(context, self.bounds);
}
}
你可能也想你的插圖界矩形:'CGContextStrokeRect(背景下,CGRectInset(self.bounds,0.5,0.5));'。 – 2014-12-03 19:48:00
如果我不插入矩形,邊框是否會被剪切到視圖之外? – hhanesand 2014-12-03 19:51:35
是的,筆劃線的中間將位於視圖的邊界上,使線在視圖的一半內,半在外(由於它在視圖的範圍之外,因此不會被繪製)。將它插入半個點可能是一個好主意。 – TylerTheCompiler 2014-12-03 20:00:11