Нарисуйте UIImage с resizableEdgeInsets в центре с растянутыми сторонами

Я думал, что это возможно, так как UIImageView прекрасно с этим справляется. Могу ли я нарисовать UIImage в методе drawRect: UIView таким образом, чтобы я центрировал изображение по горизонтали, а стороны UIImage затем растягивались, чтобы заполнить напоминание о UIView?

- (void)drawRect:(CGRect)rect {
    [[[UIImage imageNamed:@"image"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 2, 0, 2)] drawInRect:rect];
}

Все изображение продолжает растягиваться. Например, изображение имеет ширину 100 пикселей. 90 пикселей в центре не могут быть растянуты, но с обеих сторон есть 5 пикселей, которые я хотел бы растянуть с обеих сторон до края прямоугольника.


person runmad    schedule 28.12.2012    source источник


Ответы (1)


Боюсь, resizableImageWithCapInsets: работает иначе. Он предназначен для того, чтобы края не растягивались, а средний бит заполнялся плиткой, чтобы заполнить оставшееся пространство.

Чтобы достичь того, чего вы, как я думаю, хотите, вам, вероятно, придется нарисовать три изображения рядом.

Надеюсь, это поможет.

person Simon Tillson    schedule 29.01.2013