A UIButton
может отображать два типа изображений - изображение переднего плана и фоновое изображение.Предполагается, что фоновое изображение для кнопки заменит фоновую текстуру кнопки.Таким образом, он будет растягиваться, чтобы заполнить весь фон.Предполагается, что изображение переднего плана кнопки будет значком, который может отображаться или не отображаться рядом с текстом;это не будет растягиваться.Он может уменьшиться, если рамка меньше изображения, но она не будет растягиваться.
Передний план и фоновое изображение кнопки можно установить в коде, подобном следующему:
// stretchy
[self setBackgroundImage:backgroundImage forState:UIControlStateNormal];
// not stretchy
[self setImage:forgroundImage forState:UIControlStateNormal];
По умолчанию backgroundImage
кнопки будет использовать scaleToFill для растягивания изображения.Если вам нужно растянуть изображение, используя верхние вставки, вы должны установить их на изображение, прежде чем назначить его backgroundImage, например:
UIImage *image = [UIImage imageNamed:@"bg_image.png"];
/* This assumes your image will have a 1px column and 1px row of pixels
in the horizontal and vertical middle of the image that should be
stretchable. If that's not the case (such as asymetrical buttons)
you need to adjust the caps */
image = [image stretchableImageWithLeftCapWidth:floorf(image.size.width/2)
topCapHeight:floorf(image.size.height/2)];
[self setBackgroundImage:image forState:UIControlStateNormal];