Cố gắng tìm ra những gì tôi đang làm sai ở đây. Đã thử nhiều thứ, nhưng tôi chưa bao giờ thấy hình chữ nhật khó nắm bắt trên màn hình. Ngay bây giờ, đó là tất cả những gì tôi muốn làm - chỉ cần vẽ một hình chữ nhật duy nhất trên màn hình.Câu hỏi iphone mới bắt đầu: vẽ hình chữ nhật. Tôi đang làm gì sai?
Tôi nhận được "ngữ cảnh không hợp lệ" trên mọi thứ trừ CGContextSetRGBFillColor(). Nhận được bối cảnh sau đó có vẻ như sai với tôi, nhưng tôi không ở nhà nhìn vào những ví dụ tôi đã sử dụng tối qua.
Tôi cũng đã làm sai điều gì khác không? Tôi thực sự muốn có được ít nhất này nhiều làm tối nay ...
- (id)initWithCoder:(NSCoder *)coder
{
CGRect myRect;
CGPoint myPoint;
CGSize mySize;
CGContextRef context;
if((self = [super initWithCoder:coder])) {
NSLog(@"1");
currentColor = [UIColor redColor];
myPoint.x = (CGFloat)100;
myPoint.y = (CGFloat)100;
mySize.width = (CGFloat)50;
mySize.height = (CGFloat)50;
NSLog(@"2");
// UIGraphicsPushContext (context);
NSLog(@"3");
CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0);
context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, currentColor.CGColor);
CGContextAddRect(context, myRect);
CGContextFillRect(context, myRect);
}
return self;
}
Cảm ơn,
Sean.
Ngoài ra, bạn không nên gọi trực tiếp drawRect, nhưng thay vào đó hãy gọi setNeedsDisplay, vì vậy hệ điều hành sẽ chọn nó và vẽ lại chế độ xem sau. – pgb
Có. Đúng rồi. –
Được rồi, vì vậy tôi không nên sử dụng initWithCoder() để vẽ nội dung. Nhưng điều đó có thực sự trả lời câu hỏi của tôi không? Việc chuyển mã CG sang một hàm khác sẽ tạo ra bất kỳ sự khác biệt nào trong việc hình chữ nhật có được vẽ không? Và đối với việc sử dụng/không sử dụng drawRect, bây giờ bạn đã quản lý để gây nhầm lẫn cho tôi. Bạn có nói rằng tôi nên đặt tất cả các tham số cho hình chữ nhật của tôi trong drawRect? Điều đó dường như không đúng, hoặc - nếu tôi muốn vẽ nhiều hơn một hình chữ nhật thì sao? Nếu có một ứng dụng ví dụ đơn giản ngoài đó * chỉ * vẽ hình chữ nhật hoặc hình tròn hoặc thứ gì đó, tôi muốn xem qua nó. Sean. –