ฉันใช้ [UIColor colorWithPatternImage:]
เพื่อตั้งค่าภาพพื้นหลังสำหรับ UITableViewCell ที่จัดกลุ่มของฉัน ฉันได้มุมมนฟรีสำหรับเซลล์ของฉัน และทุกอย่างดูดี จนกระทั่งฉันพยายามที่จะทำให้เซลล์มีความสูงที่แตกต่างออกไป
ตามหลักการแล้ว ฉันต้องการให้ภาพพื้นหลังอยู่ตรงกลางในแนวตั้ง แต่เมธอด colorWithPatternImage:
จะเริ่มต้นรูปแบบรูปภาพจากมุมซ้ายล่าง ซึ่งทำให้เซลล์ของฉันดูไม่ดี
มันบอกในเอกสารว่า
"ตามค่าเริ่มต้น เฟสของสีที่ส่งคืนคือ 0 ซึ่งทำให้มุมซ้ายบนของรูปภาพสอดคล้องกับต้นกำเนิดของภาพวาด หากต้องการเปลี่ยนเฟส ให้กำหนดสีให้เป็นสีปัจจุบัน จากนั้นใช้ CGContextSetPatternPhase ฟังก์ชั่นเปลี่ยนเฟส"
แต่ฉันไม่รู้ว่าจะใช้ CGContextSetPatternPhase
กับการใช้งานปัจจุบันของฉันอย่างไร
ฉันเหนื่อย
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGSize phase = CGSizeMake(50, 50);
CGContextSetPatternPhase(context, phase);
UIImage* image = [UIImage imageNamed:@"cell_background"];
UIColor* color = [UIColor colorWithPatternImage:image];
self.backgroundColor = color;
CGContextRestoreGState(context);
[super drawRect:rect];
}
แต่นั่นไม่มีผลกระทบต่อระยะรูปแบบ ใครสามารถบอกฉันได้ว่าฉันจะใช้มันอย่างไร?
ขอบคุณมาก,
โจเซฟ