objective-c - vegetales - que hacer despues de comer para adelgazar
Crear un menú de selección usando Cocoa Touch y Objective C (4)
Hay muchas maneras de hacer esto. como agregar UITableView a UIActionSheet y mostrar actionSheet en un botón específico. también UIPopOverViewController es mejor para hacer este tipo de trabajo.
Las siguientes son fuentes útiles de Código que pueden ser útiles en su caso:
Estoy creando una aplicación de vista única con Cocoa Touch. Necesito que aparezca un menú con una selección de temas diferentes para esa vista única, y me he estado preguntando cuál es el mejor enfoque y cómo lograrlo.
¿Debo crear una vista de detalles maestros? Y si es así, ¿cómo obtengo que la vista de detalles sea la pantalla inicial que carga la aplicación? Pero no estoy seguro de si este es el mejor enfoque para tomar.
También he estado viendo cosas como este menú emergente , pero prefiero aprender cómo lograr este tipo de cosas, que comprar una solución lista para usar. ¿Hay alguna clase en Cocoa Touch que ofrezca una funcionalidad similar? Obviamente, han creado este menú desde cero utilizando Core Graphics, pero ¿hay alguna manera más fácil de lograr este tipo de menú, tal vez usando un grupo de UIButtons por ejemplo?
Los ejemplos de código serían muy apreciados, pero realmente estoy buscando la mejor manera de abordar este problema, así que sé con qué marcos me familiarizaré.
TIA
Podría intentar usar UICollectionView
con UICollectionViewFlowLayout
para crear una cuadrícula de botones que podría usarse para cambiar entre los diferentes temas.
Sin saber más sobre lo que quiere de su menú de selección, cuántos temas tiene, cómo desea que se muestre, etc., es difícil sugerir un método sobre otro. Pero debido a que UICollectionViewFlowLayout
es un UICollectionViewLayout
predefinido proporcionado por Apple para mostrar UIViews
en una disposición de cuadrícula, podría ser una buena forma de abordar este problema.
Aquí se explica cómo implementaría UICollectionView
con UICollectioViewFlowLayout
:
Archivo de cabecera
@interface ViewController : UIViewController <UICollectionViewDataSource,UICollectionViewDelegateFlowLayout> {
UICollectionView * themeSelection;
}
Archivo de Implementación
- (void)viewDidLoad {
UICollectionViewFlowLayout *layout=[[UICollectionViewFlowLayout alloc] init];
themeSelection =[[UICollectionView alloc] initWithFrame:self.view.frame collectionViewLayout:layout];
[themeSelection setDataSource:self];
[themeSelection setDelegate:self];
[themeSelection registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"cellIdentifier"];
[self.view addSubview: themeSelection];
[super viewDidLoad];
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return 15;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
UICollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cellIdentifier" forIndexPath:indexPath];
//Each cell is a theme that could be selected
return cell;
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
return CGSizeMake(100, 100);
}
Si la cantidad de temas es menor o igual a seis, puede usar una UIActionSheet con un par de botones. En su controlador de vista, toque un toque en el botón "Elegir tema" con este tipo de código:
UIActionSheet* as = [[UIActionSheet alloc] initWithTitle:@"Choose Theme" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Theme 1", @"Theme 2", @"Blue Theme", @"etc."];
[as showInView:[self view]];
En la parte superior de su archivo .h, junto a la definición de la clase, agregue esto:
<UIActionSheetDelegate>
Y en el archivo .m ad un método como este:
-(void)actionSheet:(UIActionSheet*)as clickedButtonAtIndex:(NSInteger)index {
switch(index) {
case 0:
//It was theme 1
break;
case 1:
//It was Theme 2
break;
case 3:
//It was blue theme
break;
//And so on...
}
}
Reemplace los comentarios con cambiar al tema seleccionado.
Nota: si tiene más de seis temas, va a querer algo más parecido a la solución discutida en esta pregunta sobre SO en UIPickerViews en hojas de acción.
¿Qué le parece usar un UINavigationController y empujar un UITableViewController con una lista de temas en la pila de navegación?
No está limitado en la cantidad de temas que puede ofrecer y debería ser bastante fácil de hacer.
O puede usar [UIViewController presentViewController: animated: completion:] con modalTransitionStyle establecido en UIModalTransitionStyleFlipHorizontal.