-(void) someAction {
UIScrollView * scroll = [[UIScrollView alloc] init]; // create an intermediary scrollView
Это НЕПРАВИЛЬНО. Это приведет к потере памяти, поскольку вы теряете указатель на это представление прокрутки после назначения его другому объекту. Вам лучше просто объявить UIScrollView * scroll; для этой цели.
scroll = secondScroll; // here I intent to pass the content of secondScroll to scroll
Но это не то, что происходит. Представления прокрутки волшебным образом не копируют себя; если вы назначаете один другому, вы назначаете только указатель.
scroll.frame = firstScroll.frame; // here I assign the frame of firstScroll to scroll
// so that it doesn't take the frame of secondScroll;
Таким образом, с этого момента, если вы работаете на scroll
, это повлияет на secondScroll.
firstScroll = scroll; // and then pass all the contents of scroll to firstScroll;
И с этим вы назначаете firstScroll SecondScroll. Таким образом, firstScroll теперь по существу будет secondScroll, теряя его (теряя память снова и снова) и не делая ничего полезного.
}
Что на Земле вы пытаетесь сделать с этим?
Предполагая, что вы хотите обменяться двумя взглядами, вы должны сделать что-то вроде этого:
BOOL firstScrollVisible = NO; // in -init or whatever
- (void) someAction
{
if (fistScrollVisible)
[self.view bringSubviewToFront:secondScroll];
else
[self.view bringSubviewToFront:firstScroll];
firstScrollVisible = !firstScrollVisible;
}