我正在使用UiScrollSlidingPages(https://github.com/TomThorpe/UIScrollSlidingPages)插件,但我遇到了问题。每个页面的显示视图都是相同的,它是最后一个分配的视图。
这是我正在使用的数据源代理方法
-(TTSlidingPage *)pageForSlidingPagesViewController:(TTScrollSlidingPagesController*)source atIndex:(int)index{
variabiliGlobali.paginaFormazione = index + 1;
UIViewController *viewController;
viewController = [[foaPaginaFormazioneVC alloc] init];
return [[TTSlidingPage alloc] initWithContentViewController:viewController];
}
这是foaPaginaFormazioneVC代码。
#import "foaPaginaFormazioneVC.h"
#import "foaAppDelegate.h"
#import "foaVotoCalciatoreCell.h"
#import "foaBonusTotaliCell.h"
#import "foaRiepilogoCell.h"
@implementation foaPaginaFormazioneVC
foaAppDelegate *variabiliGlobali;
NSDictionary *formazione;
NSDictionary *elencoCalciatori;
NSDictionary *logFormazione;
NSDictionary *logCalcolo;
NSMutableArray *titolari;
NSMutableArray *panchinari;
NSMutableArray *logForTipo;
NSMutableArray *logForValore;
NSMutableArray *logCalTipo;
NSMutableArray *logCalValore;
bool calcolata;
- (void)viewDidLoad
{
[super viewDidLoad];
self.cellZoomInitialAlpha = [NSNumber numberWithFloat:1.0];
self.cellZoomAnimationDuration = [NSNumber numberWithFloat:0.5];
self.cellZoomXScaleFactor = [NSNumber numberWithFloat:0.9];
self.cellZoomYScaleFactor = [NSNumber numberWithFloat:0.9];
variabiliGlobali = (foaAppDelegate *)[[UIApplication sharedApplication] delegate];
formazione = [variabiliGlobali.formazioniA objectAtIndex: variabiliGlobali.paginaFormazione - 1];
elencoCalciatori = [[NSDictionary alloc] init];
logFormazione = [[NSDictionary alloc] init];
logCalcolo = [[NSDictionary alloc] init];
if ([formazione objectForKey:@"FORMAZIONE"] != [NSNull null]) {
elencoCalciatori = [formazione objectForKey:@"FORMAZIONE"];
}
if ([formazione objectForKey:@"LOG_FORMAZIONE"] != [NSNull null]) {
logFormazione = [formazione objectForKey:@"LOG_FORMAZIONE"];
}
if ([formazione objectForKey:@"LOG_CALCOLO"] != [NSNull null]) {
logCalcolo = [formazione objectForKey:@"LOG_CALCOLO"];
}
titolari = [[NSMutableArray alloc] init];
panchinari = [[NSMutableArray alloc] init];
for (NSDictionary *dict in elencoCalciatori) {
if ([[dict objectForKey:@"ORDINE"] intValue] <= 11) {
[titolari addObject: dict];
}
else {
[panchinari addObject: dict];
}
}
logForTipo = [[NSMutableArray alloc] init];
logForValore = [[NSMutableArray alloc] init];
logCalTipo = [[NSMutableArray alloc] init];
logCalValore = [[NSMutableArray alloc] init];
NSString *appString;
bool appBool;
float appNumber;
if ([logFormazione count] != 0) {
//AMMINISTRATORE
appBool = [[logFormazione objectForKey:@"AMMINISTRATORE"] boolValue];
if (appBool) {
[logForTipo addObject: @"Formazione inserita dall'amministratore"];
[logForValore addObject: @""];
}
//MODULO INIZIALE
appString = [logFormazione objectForKey:@"MODULO_INIZIALE"];
[logForTipo addObject: @"Modulo Iniziale"];
[logForValore addObject: appString];
//DATA
appString = [logFormazione objectForKey:@"DATA"];
[logForTipo addObject: @"Data Ultima Modifica"];
[logForValore addObject: appString];
}
if ([logCalcolo count] != 0) {
//MODULO FINALE
appString = [logCalcolo objectForKey:@"MODULO_FINALE"];
[logForTipo addObject: @"Modulo Finale"];
[logForValore addObject: appString];
//PORTIERE IMBATTUTO
appNumber = [[logCalcolo objectForKey:@"PORTIERE_IMBATTUTO"] doubleValue];
if (appNumber != 0) {
NSNumber *doubleNumber = [NSNumber numberWithDouble:appNumber];
[logCalTipo addObject: @"Portiere Imbattuto"];
[logCalValore addObject: [doubleNumber stringValue]];
}
//MOD_P
appNumber = [[logCalcolo objectForKey:@"MOD_P"] doubleValue];
if (appNumber != 0) {
NSNumber *doubleNumber = [NSNumber numberWithDouble:appNumber];
[logCalTipo addObject: @"Modificatore Portiere"];
[logCalValore addObject: [doubleNumber stringValue]];
}
//MOD_D
appNumber = [[logCalcolo objectForKey:@"MOD_D"] doubleValue];
if (appNumber != 0) {
NSNumber *doubleNumber = [NSNumber numberWithDouble:appNumber];
[logCalTipo addObject: @"Modificatore Difesa"];
[logCalValore addObject: [doubleNumber stringValue]];
}
//MOD_C
appNumber = [[logCalcolo objectForKey:@"MOD_C"] doubleValue];
if (appNumber != 0) {
NSNumber *doubleNumber = [NSNumber numberWithDouble:appNumber];
[logCalTipo addObject: @"Modificatore Centrocampo"];
[logCalValore addObject: [doubleNumber stringValue]];
}
//MOD_A
appNumber = [[logCalcolo objectForKey:@"MOD_A"] doubleValue];
if (appNumber != 0) {
NSNumber *doubleNumber = [NSNumber numberWithDouble:appNumber];
[logCalTipo addObject: @"Modificatore Attacco"];
[logCalValore addObject: [doubleNumber stringValue]];
}
//PUNTEGGIO
appNumber = [[logCalcolo objectForKey:@"PUNTEGGIO"] doubleValue];
if (appNumber != 0) {
NSNumber *doubleNumber = [NSNumber numberWithDouble:appNumber];
[logCalTipo addObject: @"Punteggio Finale"];
[logCalValore addObject: [doubleNumber stringValue]];
}
}
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
if (variabiliGlobali.gioCalcolata) {
return 4;
}
else {
return 3;
}
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSInteger *numero;
//La giornata è calcolata. Sezione 2 = BONUS e TOTALI
if (variabiliGlobali.gioCalcolata && section == 2) {
numero = [logCalTipo count];
}
//La giornata è calcolata. Sezione 3 = RIEPILOGO
//La giornata non è calcolata. Sezione 2 = RIEPILOGO
if ((variabiliGlobali.gioCalcolata && section == 3) || (variabiliGlobali.gioCalcolata == false && section == 2)) {
numero = [logForTipo count];
}
if (section == 1)
{numero = [panchinari count];}
if ( section == 0)
{numero = [titolari count];}
return numero;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *idDettCal = @"cellaVotoCalciatore";
NSString *idRiepilogo = @"riepilogoCell";
NSString *idTotali = @"bonusTotaliCell";
//Dictionary per Titolari e Panchinari
NSDictionary *calciatore;
if (indexPath.section == 0 || indexPath.section == 1) {
foaVotoCalciatoreCell *cell = (foaVotoCalciatoreCell *)[tableView dequeueReusableCellWithIdentifier:idDettCal];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:idDettCal owner:self options:nil];
cell = [nib objectAtIndex:0];
}
//TITOLARI
if (indexPath.section == 0) {
calciatore = [titolari objectAtIndex:indexPath.row];
}
//PANCHINARI
else if (indexPath.section == 1) {
calciatore = [panchinari objectAtIndex:indexPath.row];
}
NSString *calciatoreStr =
[NSString stringWithFormat:@"%@%@%@%@",
[calciatore objectForKey:@"CALCIATORE"],
@" (",
[[calciatore objectForKey:@"SQUADRA"] substringToIndex:3],
@")"];
NSString *imgRuolo =
[NSString stringWithFormat:@"%@%@",
[calciatore objectForKey:@"RUOLO"],
@".jpg"];
cell.ruolo.image = [UIImage imageNamed:imgRuolo];
NSDictionary *dettaglioVoto;
UIImageView *imageIcona;
CGFloat offset;
dettaglioVoto = [calciatore objectForKey:@"VOTO_STM"];
offset = 0;
for (NSString *icona in dettaglioVoto) {
if ([icona isEqualToString: @"AMMONITO"]) {
imageIcona = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"amm.png"]];
}
else if ([icona isEqualToString: @"GOL_FATTO"]) {
imageIcona = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"golfatto.png"]];
}
else if ([icona isEqualToString: @"GOL_SUBITO"]) {
imageIcona = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"golsubito.png"]];
}
else if ([icona isEqualToString: @"ENTRATO"]) {
imageIcona = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"entrato.png"]];
}
else if ([icona isEqualToString: @"USCITO"]) {
imageIcona = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"uscito.png"]];
}
else if ([icona isEqualToString: @"ESPULSO"]) {
imageIcona = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"esp.png"]];
}
else if ([icona isEqualToString: @"ASSIST"]) {
imageIcona = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"assist.png"]];
}
else if ([icona isEqualToString: @"ASSIST_FERMO"]) {
imageIcona = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"assistf.png"]];
}
else if ([icona isEqualToString: @"RIGORE_SEGNATO"]) {
imageIcona = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"rigoresegnato.png"]];
}
else if ([icona isEqualToString: @"RIGORE_SBAGLIATO"]) {
imageIcona = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"rigoresbagliato.png"]];
}
else if ([icona isEqualToString: @"RIGORE_PARATO"]) {
imageIcona = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"rigoreparato.png"]];
}
else if ([icona isEqualToString: @"AUTOGOL"]) {
imageIcona = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"autogol.png"]];
}
else if ([icona isEqualToString: @"GOL_PARTITA"]) {
imageIcona = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"golvittoria.png"]];
}
else if ([icona isEqualToString: @"GOL_PAREGGIO"]) {
imageIcona = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"golpareggio.png"]];
}
imageIcona.frame = CGRectMake(offset, 0, imageIcona.frame.size.width, imageIcona.frame.size.height);
//imageIcona.frame = CGRectMake(offset, 0, 20, 20);
offset = imageIcona.frame.size.width + offset + 2;
[cell.iconeDettaglio addSubview: imageIcona];
}
if (offset == 0) {
//cell.calciatore.frame = CGRectMake(cell.calciatore.frame.origin.x, 14, cell.calciatore.frame.size.width, cell.calciatore.frame.size.height);
}
cell.calciatore.text = calciatoreStr;
cell.votoIniziale.text = [calciatore objectForKey:@"VOTO_PRNT"];
cell.votoFinale.text = [calciatore objectForKey:@"VOTO_PRNT_TOT"];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
//La giornata è calcolata. Sezione 2 = BONUS e TOTALI
else if (variabiliGlobali.gioCalcolata && indexPath.section == 2) {
NSDictionary *totaliVal;
NSDictionary *totaliTip;
totaliVal = [logCalValore objectAtIndex:indexPath.row];
totaliTip = [logCalTipo objectAtIndex:indexPath.row];
foaBonusTotaliCell *cell = (foaBonusTotaliCell *)[tableView dequeueReusableCellWithIdentifier:idTotali];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:idTotali owner:self options:nil];
cell = [nib objectAtIndex:0];
}
cell.tipoBonusLabel.text = totaliTip;
cell.totaleLabel.text = totaliVal;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
//La giornata è calcolata. Sezione 3 = RIEPILOGO
//La giornata non è calcolata. Sezione 2 = RIEPILOGO
//else ((variabiliGlobali.gioCalcolata && indexPath.section == 3) ||
// (variabiliGlobali.gioCalcolata == false && indexPath.section == 2)) {
//}
else {
NSDictionary *riepilogoVal;
NSDictionary *riepilogoTip;
riepilogoVal = [logForValore objectAtIndex:indexPath.row];
riepilogoTip = [logForTipo objectAtIndex:indexPath.row];
foaRiepilogoCell *cell = (foaRiepilogoCell *)[tableView dequeueReusableCellWithIdentifier:idRiepilogo];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:idRiepilogo owner:self options:nil];
cell = [nib objectAtIndex:0];
}
cell.voceRiepilogoLabel.text = riepilogoTip;
cell.valoreRiepilogoLabel.text = riepilogoVal;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
NSString *header;
if (variabiliGlobali.gioCalcolata && section == 2) {
header = @"Bonus e Totale";
}
if ((variabiliGlobali.gioCalcolata && section == 3) || (variabiliGlobali.gioCalcolata == false && section == 2)) {
header = @"Riepilogo";
}
if (section == 1)
{header = @"Panchinari";}
if ( section == 0)
{header = @"Titolari";}
return header;
}
@end
如果我使用另一个简单视图(只有一个随机标签),插件工作正常。
怎么回事?
提前致谢。
答案 0 :(得分:0)
我已经解决了我的问题,声明了这些变量
NSDictionary *formazione;
NSDictionary *elencoCalciatori;
NSDictionary *logFormazione;
NSDictionary *logCalcolo;
NSMutableArray *titolari;
NSMutableArray *panchinari;
NSMutableArray *logForTipo;
NSMutableArray *logForValore;
NSMutableArray *logCalTipo;
NSMutableArray *logCalValore;
bool calcolata;
在ViewController的.h文件中。