У меня есть подкласс UIView, который называется MyView
@implementation MyView
{
UIView *_imageView;
}
- (instancetype) init
{
if (self = super) {
_imageView = ...
[self addSubview:_imageView];
}
}
...
- (void)layoutSubviews
{
[super layoutSubviews];
_imageView.frame = self.bounds;
}
..
В моем MyViewController я хочу вызвать анимацию изображения, то есть уменьшение его размера:
-(void)viewDidLoad
{
_dwellTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(animateView) userInfo:nil repeats:NO];
}
- (void)animateView
{
[myView animateOnImage];
}
В классе MyView анимация не работает, когда я устанавливаю кадры _imageView, но когда я устанавливаю его непрозрачность, например .alpha или .layer .cornerRadius, все работает отлично. Ресурсы, с которыми я столкнулся в Интернете, предполагают, что _imageView имеет ограничения автоматического макета, и его фрейм по-прежнему контролируется мной, указанным в LayoutSubviews. Кажется, что анимация всегда заканчивается в автоматическом макете.
-(void)animateOnImage {
[UIView animateWithDuration:2 animations:^{
[self shrinkImageView];
}];
}
- (void)shrinkImageView {
// Doesn't work
_imageView.frame = CGRectMake(100, 100, 400, 500);
// Works
_imageView.alpha = 0.5;
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... onstraints
Как анимировать UIView, установив его фрейм с ограничениями автоматического макета? ⇐ IOS
Программируем под IOS
1732988619
Anonymous
У меня есть подкласс UIView, который называется MyView
@implementation MyView
{
UIView *_imageView;
}
- (instancetype) init
{
if (self = super) {
_imageView = ...
[self addSubview:_imageView];
}
}
...
- (void)layoutSubviews
{
[super layoutSubviews];
_imageView.frame = self.bounds;
}
..
В моем MyViewController я хочу вызвать анимацию изображения, то есть уменьшение его размера:
-(void)viewDidLoad
{
_dwellTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(animateView) userInfo:nil repeats:NO];
}
- (void)animateView
{
[myView animateOnImage];
}
В классе MyView анимация не работает, когда я устанавливаю кадры _imageView, но когда я устанавливаю его непрозрачность, например .alpha или .layer .cornerRadius, все работает отлично. Ресурсы, с которыми я столкнулся в Интернете, предполагают, что _imageView имеет ограничения автоматического макета, и его фрейм по-прежнему контролируется мной, указанным в LayoutSubviews. Кажется, что анимация всегда заканчивается в автоматическом макете.
-(void)animateOnImage {
[UIView animateWithDuration:2 animations:^{
[self shrinkImageView];
}];
}
- (void)shrinkImageView {
// Doesn't work
_imageView.frame = CGRectMake(100, 100, 400, 500);
// Works
_imageView.alpha = 0.5;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79240177/how-to-animate-an-uiview-by-setting-its-frame-that-has-auto-layout-constraints[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия