Как вы устанавливаете stretchableImageWithLeftCapWidth в построителе интерфейса?Как вы устанавливаете stretchableImageWithLeftCapWidth в построителе интерфейса?
ответ
Интерфейсный строитель не поддерживает растяжимые изображения.
-(void) viewDidLoad {
[super viewDidLoad];
[myImageView setImage:[[myImageView image] stretchableImageWithLeftCapWidth:5 topCapHeight:5 ]];
}
Это в настоящее время (с версии 4.5) ограничение InterfaceBuilder. Однако для создания каждой кнопки необходимо создать IBOutlet
, а вручную указать, что изображение растягивается в viewDidLoad
, не является отличным решением, если не по каким-либо другим причинам, чем это делает создание более громоздким, а также более хрупким.
Вместо этого давайте создадим подкласс UIButton
, который по умолчанию сделает любое фоновое изображение растяжимым. В этом примере я растягиваю только нормальное и выделенное фоновое изображение. Для готового к производству класса вы, вероятно, захотите проверить все состояния обоих фоновых и передних изображений и растянуть их.
@implementation NTSTButton
- (id) initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
/* There is no support in IB for stretchable images. So, let's
make sure _any_ background image assigned to this button
stretches correctly.
Note: Setting the stretch cap to 10px, which should work with
almost all button background images.
*/
UIImage *normalImage =
[[self backgroundImageForState:UIControlStateNormal]
stretchableImageWithLeftCapWidth:10 topCapHeight:10] ;
UIImage *highlightedImage =
[[self backgroundImageForState:UIControlStateHighlighted]
stretchableImageWithLeftCapWidth:10 topCapHeight:10] ;
[self setBackgroundImage:normalImage
forState:UIControlStateNormal];
[self setBackgroundImage:highlightedImage
forState:UIControlStateHighlighted];
}
return self;
}
@end
+1 спасибо за направление – Brenden
Подобно @answerbot, но обновляется прошивкой 5.0+, как stretchableImageWithLeftCapWidth:topCapHeight:
теперь осуждается.
@implementation UIButtonStretchable
- (id) initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
[self setBackgroundImage: [[self backgroundImageForState:UIControlStateNormal] resizableImageWithCapInsets:UIEdgeInsetsMake(22,6,22,6)]forState:UIControlStateNormal];
[self setBackgroundImage: [[self backgroundImageForState:backgroundImageForState:UIControlStateHighlighted] resizableImageWithCapInsets:UIEdgeInsetsMake(22,6,22,6)]forState:backgroundImageForState:UIControlStateHighlighted];
}
return self;
}
@end
iOS7 каталогов также представили активы, где вы можете указать растяжение области ваших изображений, но это работает только тогда, когда вы только поддерживать iOS7 (т.е. вы не заботитесь о пользователях оригинального IPAD, IPod Touch, или 3GS, да, в iOS нет фрагментации).
Используйте Stretching
конфиги в View
разделе.
Прежде всего, измените режим просмотра на
Aspect fill
.Затем отредактируйте X, Y, Ширина, поле высоты в
Stretching
часть. Например: Пусть говорят, у вас есть размер 10x20 изображения, и хотите, чтобы установить его в размер вид 5x10 ==> Set X = 5/10 = 0,5, Y = 10/20 = 0,5
ПРИМЕЧАНИЕ.: IB не позволяет использовать меньшее изображение для «растягивания» в более крупный кадр, поэтому вам нужно сконфигурировать ваше изображение как можно больше.
- 1. Как вы подталкиваете в построителе интерфейса Xcode?
- 2. Как вы устанавливаете UITabBarContoller в построителе интерфейса в качестве корневого контроллера?
- 3. Autolayout в построителе интерфейса
- 4. Как вы устанавливаете bashScriptExtraDefines?
- 5. Как вы устанавливаете JGit?
- 6. Как вы устанавливаете JDK?
- 7. Как вы устанавливаете pyvisa?
- 8. Как вы устанавливаете jgimp?
- 9. Построение UIView в построителе интерфейса
- 10. Как добиться этого интерфейса на построителе интерфейса?
- 11. Monotouch: Как отобразить изображение в построителе интерфейса
- 12. Как прототип NSTableRowView в построителе интерфейса
- 13. Настройка UITableViewCell в построителе интерфейса
- 14. Использование констант в построителе интерфейса
- 15. Как настроить NSTreeController в построителе интерфейса
- 16. Неизвестный класс в построителе интерфейса
- 17. Создать UICollectionViewCell в построителе интерфейса
- 18. Как вы устанавливаете пропавший саксофон?
- 19. Где/как вы устанавливаете kCGLOGLPVersion_Legacy?
- 20. Как вы устанавливаете CONTEXT_INFO = NULL?
- 21. Как вы устанавливаете заголовок карты?
- 22. Как вы устанавливаете Карусель Совы?
- 23. Как вы устанавливаете pry-плагины?
- 24. Как вы устанавливаете движок JavaScriptEngineSwitcher?
- 25. Как вы программно устанавливаете атрибут?
- 26. MissingTranslationData - Как вы устанавливаете TranslationData?
- 27. Как создать привязку какао в построителе интерфейса?
- 28. Как правильно сжимать изображения в построителе интерфейса
- 29. Как исправить мертвые ссылки в построителе интерфейса
- 30. Добавить UIBarButtonItem в построителе интерфейса, как?
«Конструктор интерфейсов не поддерживает растяжимые изображения». ==> Извините, но это делает. «Растяжка» принимает эту роль, упомянутую в моем ответе ниже – samthui7