Сохранить размер и пространство между видами в Uiscrollview при масштабированииIOS

Программируем под IOS
Ответить
Anonymous
 Сохранить размер и пространство между видами в Uiscrollview при масштабировании

Сообщение Anonymous »

В просмотре прокрутки у меня есть один центральный вид (серый), который должен нормально масштабировать, и некоторые другие виды (оранжевый), которые должны сохранять их визуальный размер и пространство в сером представлении. Знайте, одно из возможных решений - не поставить оранжевые представления в просмотр прокрутки и управлять их движущейся анимацией вручную, но мне интересно, есть ли какое -то решение с использованием вида прокрутки. < /p>

Код: Выделить всё

#import "ViewController.h"

@interface ViewController ()

@property (strong, nonatomic) IBOutlet UIScrollView *scrollView;
@property (strong, nonatomic) IBOutlet UIView *zoomingView;
@property (strong, nonatomic) IBOutlet UIView *view1;
@property (strong, nonatomic) IBOutlet UIView *view2;
@property (strong, nonatomic) IBOutlet UIView *centerView;

@end

@implementation ViewController
{
NSArray *_views;
}

- (void)viewDidLoad
{
[super viewDidLoad];

_views = @[self.view1, self.view2];
}

- (CGFloat)invertedZoomScale
{
return 1.0 / self.scrollView.zoomScale;
}

- (void)updateWithZoom:(CGFloat)zoom
{
for (UIView *view in _views) {
CGFloat tx = 0; // TODO: calculate
CGFloat ty = 0;

if ([view isEqual:_views.firstObject]) {
tx *= -1;
}

CGAffineTransform scaleTransform = CGAffineTransformMakeScale(self.invertedZoomScale, self.invertedZoomScale);
CGAffineTransform translationTransform = CGAffineTransformMakeTranslation(tx, ty);

view.transform = CGAffineTransformConcat(scaleTransform, translationTransform);
}
}

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return self.zoomingView;
}

- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
[self updateWithZoom:scrollView.zoomScale];
}

@end
Пример проекта https://github.com/schmidt9/zoomscrollview
Начальная позиция


Подробнее здесь: https://stackoverflow.com/questions/796 ... en-zooming
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»