У меня есть View Controller (
PagedFlowView) который содержит в себе custom view (
Collapse click).
По сути, у моего View Controller есть метод
- (UIView *)flowView:(PagedFlowView *)flowView cellForPageAtIndex:(NSInteger)index;
Который очень похож по своим свойствам на метод Table View
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
В коде который представлен ниже я использую этот метод в моем View Controller(pagedFlowView) для создания custom view(Collapse click) и передаю индекс страницы property someData
- (UIView *)flowView:(PagedFlowView *)flowView cellForPageAtIndex:(NSInteger)index{
mainDetailV = (MainDetailView *)[flowView dequeueReusableCell];
if (!mainDetailV) {//creating pages flow one by one
mainDetailV = [[[NSBundle mainBundle] loadNibNamed:@"MainDetailView" owner:self options:nil] lastObject];
mainDetailV.layer.masksToBounds = YES;
}
mainDetailV.shouldDraw = YES;
mainDetailV.someData = [NSString stringWithFormat:@"%i",index];//transfer index to custom view
return mainDetailV;
}
Этот код создает n страниц с view в котором есть некоторое property. Я передаю индекс страницы в это property(mainDetailV.someData), для того что бы использовать индекс.
В моем custom view(Collapse click) я инициализирую мой view в методе
- (void)drawRect:(CGRect)rect
; , да я понимаю что это не очень хорошо для производительности но на этом этапе меня это не интересует.
Я инициализирую view в коде представленном ниже:
- (void)drawRect:(CGRect)rect{
[self initMehod];
}
-(void) initMehod{
myCollapseClick.CollapseClickDelegate = self;
myCollapseClick.alpha = 0.8;
[myCollapseClick reloadCollapseClick];
}
Как можно увидеть из документации, я использую метод
-(NSString *)titleForCollapseClickAtIndex:(int)index
;, для того что бы поставить индекс страницы (используемый ранее):
-(NSString *)titleForCollapseClickAtIndex:(int)index {
return someData;
}
Как видно из кода, все довольно просто. Но моя проблема заключается в следующем: когда я передаю индекс и мои views отображаются, я вижу у них в title следующие индексы: 1 2 3 8 4 7 5 6, но не индексы от 1 до 8 (по возрастанию).
Я понимаю что это весьма специфический вопрос. Но может у кого то есть идеи, что я делаю не правильно?
***EDIT:***
Когда я пытаюсь вывести в консоль индекс в следующем методе
- (UIView *)flowView:(PagedFlowView *)flowView cellForPageAtIndex:(NSInteger)index{
mainDetailV = (MainDetailView *)[flowView dequeueReusableCell];
if (!mainDetailV) {//creating pages flow one by one
mainDetailV = [[[NSBundle mainBundle] loadNibNamed:@"MainDetailView" owner:self options:nil] lastObject];
mainDetailV.layer.masksToBounds = YES;
}
mainDetailV.shouldDraw = YES;
mainDetailV.someData = [NSString stringWithFormat:@"%i",index];//transfer index to custom view
NSLog(@"%li",index); // HERE
return mainDetailV;
}
Результат в консоле весьма странный:
1
2
3
4
5
6
7
1
2
3
4
5
6
7
и после скроллинга на следующий View
3
4
5
6
7
и т.д.
Спасибо!
Вопрос на
StackOverflow