Вот:
//UIImageView* stretchTest = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]];
//[self addSubview:stretchTest];
UIButton *stretchTest = [UIButton buttonWithType:UIButtonTypeCustom];
[stretchTest setFrame:CGRectMake(0, 0, 400, 100)];
[stretchTest setBackgroundImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];
[self addSubview:stretchTest];
stretchTest.contentStretch = CGRectMake(0.5, 0.5, 0, 0);
stretchTest.contentMode = UIViewContentModeScaleToFill;
CGRect frame = stretchTest.frame;
frame.size.height = 300;
stretchTest.frame = frame;
Используя UIImageView (закомментировано выше), изображение растягивается соответствующим образом - закругленные углы сохраняют правильный радиус, потому что растягивается только центральный пиксель изображения.
При использовании кнопки UIB изображение растягивается неправильно.Радиусы углов не поддерживаются, и это становится уродливым.
И UIImageView, и UIButton являются подклассами UIView.Почему размер кнопки изменяется не так, как у imageView?