Вам нужно использовать образ изображения, как указал Курт, но это не так просто. Образцы рисунка используют начало окна в качестве точки начала координат, поэтому, если вы измените размер окна, образец будет перемещаться.
Вам нужно отрегулировать фазу шаблона в текущем графическом контексте в зависимости от того, где вид экрана находится в окне. Я использую эту категорию на NSView:
@implementation NSView (RKAdditions)
- (void)rk_drawPatternImage:(NSColor*)patternColor inRect:(NSRect)rect
{
[self rk_drawPatternImage:patternColor inBezierPath:[NSBezierPath bezierPathWithRect:rect]];
}
- (void)rk_drawPatternImage:(NSColor*)patternColor inBezierPath:(NSBezierPath*)path
{
[NSGraphicsContext saveGraphicsState];
CGFloat yOffset = NSMaxY([self convertRect:self.bounds toView:nil]);
CGFloat xOffset = NSMinX([self convertRect:self.bounds toView:nil]);
[[NSGraphicsContext currentContext] setPatternPhase:NSMakePoint(xOffset, yOffset)];
[patternColor set];
[path fill];
[NSGraphicsContext restoreGraphicsState];
}
@end
Вы бы использовать его как это: для пары
-(void) drawRect: (NSRect)dirtyRect
{
[self rk_drawPatternImage:[NSColor colorWithPatternImage:yourImage] inRect:self.bounds];
}
См http://stackoverflow.com/q/1125230/643383 хороших ответов на этот вопрос , – Caleb
Не совсем такой вопрос, потому что этот вопрос касается какао, а не какао-Touch. –
Согласен. Это важно, потому что в iOS-окнах очень редко изменяются размеры, но на Mac это обычное явление. Изменение размера окна влияет на рисунок рисунка из-за того, как рассчитывается начало шаблона. –