2012-01-12 11 views
7

Ho un problema di interfaccia utente con Kal Calendar per iPad. Sull'iPad c'è uno spazio vuoto ma sull'iPhone va bene. Come posso adattarlo alla cornice dell'iPad?UI Problema con il calendario kal per ipad?

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
{ 
    [kal.view setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
} 
else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
{ 
    [kal.view setFrame:CGRectMake(0, 0,768 ,1004)]; 

} 

ho cercato di utilizzare il codice di cui sopra, ma non ha funzionato per me!

enter image description here

+0

provare a mettere un punto di interruzione ed eseguire il debug del codice per verificare se quella linea di codice è stata raggiunta o meno. – Rajeel

+0

@Rajeel UI_USER_INTERFACE_IDIOM funziona correttamente! .... – user905582

+0

UI_USER_INTERFACE_IDIOM funziona correttamente ..! ma il frame è lo stesso nessuno sa perché sta accadendo! qualche consiglio! per favore! – user905582

risposta

13

in KalGridView.m troverete questo.

const CGSize kTileSize = { 46.f, 44.f }; 

Vorrei cambiare il codice in una proprietà in cui è possibile impostare il frame dinamicamente per l'idioma e/o l'orientamento.

in KalGridView.m

const CGSize kTileSize = { 109.0f, 109.0f }; 

e in KalView.m

- (void)addSubviewsToHeaderView:(UIView *)headerView 

    … 

    for (CGFloat xOffset = 0.f; xOffset < headerView.width; xOffset += 109.f, i = (i+1)%7) { 
    CGRect weekdayFrame = CGRectMake(xOffset, 30.f, 109.f, kHeaderHeight - 29.f); 
    UILabel *weekdayLabel = [[UILabel alloc] initWithFrame:weekdayFrame]; 
    weekdayLabel.backgroundColor = [UIColor clearColor]; 
    weekdayLabel.font = [UIFont boldSystemFontOfSize:10.f]; 
    weekdayLabel.textAlignment = UITextAlignmentCenter; 
    weekdayLabel.textColor = [UIColor colorWithRed:0.3f green:0.3f blue:0.3f alpha:1.f]; 
    weekdayLabel.shadowColor = [UIColor whiteColor]; 
    weekdayLabel.shadowOffset = CGSizeMake(0.f, 1.f); 
    weekdayLabel.text = [weekdayNames objectAtIndex:i]; 
    [headerView addSubview:weekdayLabel]; 
    [weekdayLabel release]; 
    } 
} 

risultati in:

screenshot

+0

grazie mille –

+0

@Vikingosegundo Grazie! – user905582

+0

FYI: Se decidi di rendere mutabile 'const kTileSize', ci sono' extern' in tutto Kal che fanno riferimento a kTileSize. Un modo per risolvere questo problema è creare un singleton con la proprietà tileSize che consentirà l'accesso in tutto Kal, ma ti permetterà anche di cambiare la dimensione in 'willRotateToInterfaceOrientation'. – rwyland

Problemi correlati