Снова прошел ваш код.
Похоже, вы можете использовать только цикл
для установки альфа и установить contentOffset
позже.
Код будет такой:
-(void)setAlphaForIndex:(int)Index {
for (UIView *v in imgScroll.subviews) {
if (v.tag == Index)
[v setAlpha:0.6];
else
[v setAlpha:1.0];
}
if (![self checkIfImageInScrollRange:Index]){
if (Index < 5)
[imgScroll setContentOffset:CGPointMake(0, 0) animated:YES];
else
[imgScroll setContentOffset:CGPointMake((Index - 5) * (CELLWIDTH) + (Index - 5 - 1) * 3, 0) animated:YES];
}
}
Так как всегда есть только один вид с альфа 0,6
Вы можете избежать цикла и улучшить производительность.
Добавьте целочисленное свойство transparentViewIndex и инициализируйте
это до -1. Улучшенный код будет выглядеть так:
-(void)setAlphaForIndex:(int)Index{
if (self.transparentViewIndex > -1) [[imgScroll viewWithTag: transparentViewIndex] setAlpha:1.0];
[[imgScroll viewWithTag: Index] setAlpha:0.6];
self.transparentViewIndex = Index;
if (![self checkIfImageInScrollRange:Index]){
if (Index < 5)
[imgScroll setContentOffset:CGPointMake(0, 0) animated:YES];
else
[imgScroll setContentOffset:CGPointMake((Index - 5) * (CELLWIDTH) + (Index - 5 - 1) * 3, 0) animated:YES];
}
}