UIScrollView фоновое изображение прокручивается быстрее, чем содержимое - PullRequest
1 голос
/ 04 августа 2010

Я только что заметил, имея фоновое изображение внутри UIScrollView вместе с некоторыми другими элементами пользовательского интерфейса, что они прокручиваются с различной скоростью.

Я создал дочерний элемент UIScrollView на моем главном экране, добавил этот код тестирования:

-(void)viewDidLoad {
[super viewDidLoad];

oRulerYear.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"bg.png"]];
//bigsize!
[oRulerYear setContentSize:CGSizeMake(2400,100)]; 

CGFloat x = 0;
CGFloat y = 0;

CGRect rect = CGRectMake(x , y, 120.0f, 45.0f);

//label 1
UILabel *label = [[[UILabel alloc] initWithFrame:rect] autorelease];
[label setText:@"Foo"];
[oRulerYear addSubview:label];


//label 2
x = 2000;
y = 10;
rect = CGRectMake(x , y, 120.0f, 45.0f);
UILabel *label2 = [[[UILabel alloc] initWithFrame:rect] autorelease];
[label2 setText:@"Bar"];
[oRulerYear addSubview:label2];

}

Прокрутка работает, но я вижу различную скорость прокрутки на обоих ярлыках. так что это совсем как игра 1980 пк, или перевернутая параллакс-прокрутка, или как ее называют. кажется, что фон прокручивается быстрее, чем передний план.

Есть идеи, как предотвратить такое поведение?

1 Ответ

1 голос
/ 18 ноября 2010

Вам необходимо установить фоновый шаблон для дочернего представления UIScrollView подкачки, а не для самого UISCrollView подкачки.

#define OUTERPADDING 160
CGRect backgroundFrame = CGRectMake(-OUTERPADDING, 0,
     pagingScrollView.contentSize.width + 2*OUTERPADDING,
     pagingScrollView.contentSize.height);
UIView * backgroundView = [[UIView alloc] initWithFrame:backgroundFrame];
backgroundView.backgroundColor = [UIColor colorWithPatternImage:
        [UIImage imageNamed:@"walnut"]];
[pagingScrollView addSubview:backgroundView];

Это представление должно быть размером с размер контента и даже большечистый результат.OUTERPADDING используется, чтобы гарантировать, что шаблон применяется на половине экрана до первой и после последних страниц

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...