2014-07-27 2 views
0

Je veux développer une application iOS qui prend tous les articles de mon blog wordpress et les énonce correctement. Chaque article a un titre, une image et du contenu. Pour le premier écran, je veux faire quelque chose comme un UITableView personnalisé, mais je ne suis pas sûr que ce soit la bonne façon de l'implémenter.iOS choix de l'application app

http://a2.mzstatic.com/us/r30/Purple2/v4/5c/70/05/5c7005b2-ab76-33ab-e32f-5f7e861ef5e9/screen568x568.jpeg

Voici le genre de chose que je veux faire sans la barre de recherche. Mais chaque article aurait son image disposée de cette façon et le titre (pas besoin d'un aperçu du contenu) sous l'image. Si j'utilise un UITableView, je vais avoir une "séparation" entre toutes les images ce qui n'est pas exactement comme cela est fait ici. Savez-vous comment je pourrais réaliser quelque chose comme ça? Devrais-je créer mes objets graphiques par programme ou est-ce faisable avec les outils de storyboard/constructeur d'interface?

+0

Si elle était moi - de UITableViewCell sur mesure est la façon dont je aller avec ça. – Tander

+0

Utilisez un UITableViewCell personnalisé ou consultez cocoacontrols.com pour des choses similaires. – satheeshwaran

+0

https://www.cocoacontrols.com/controls/openwatch - Un contrôle similaire pourrait être un endroit que vous pourriez commencer avec. – satheeshwaran

Répondre

2

Vous devez utiliser UITableViewCell personnalisé. Voici les ressources:

https://developer.apple.com/library/ios/documentation/userexperience/Conceptual/TableView_iPhone/TableViewCells/TableViewCells.html

http://www.idev101.com/code/User_Interface/UITableView/customizing.html

http://www.appcoda.com/customize-table-view-cells-for-uitableview/

Vous pouvez créer la classe CustomCell avec héritée XIB de UITableViewCell. Nous allons simplement ajouter la catégorie dans le fichier .mm de la classe tableview de la manière suivante. Je pense que c'est la méthode la plus facile à appliquer pour la création de cellule personnalisée.

@interface UITableViewCell(NIB) 
@property(nonatomic,readwrite,copy) NSString *reuseIdentifier; 
@end 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return 30; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
static NSString *[email protected]"cell"; 
    CustomCell *cell=[tableView dequeueReusableCellWithIdentifier:identifier]; 
    if(cell==nil) 
    { 
     NSLog(@"New Cell"); 
     NSArray *nib=[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil]; 
     cell=[nib objectAtIndex:0]; 
     cell.reuseIdentifier=identifier; 

    }else{ 
     NSLog(@"Reuse Cell"); 
    } 
    cell.lbltitle.text=[NSString stringWithFormat:@"Level %d",indexPath.row]; 
    id num=[_arrslidervalues objectAtIndex:indexPath.row]; 
    cell.slider.value=[num floatValue]; 
    return cell; 
} 
@end 
0

Pour ce genre de chose, UICollectionView est le meilleur. Exact même délégué que UITableView, juste plus flexible et configurable. Vous pouvez avoir des cellules carrées, vous pouvez définir la largeur de la cellule, vous pouvez faire défiler vers la gauche ou la droite, etc. Il est utilisé dans la capture d'écran ci-dessus, et instagram etc. Voici comment l'implémenter.

En .h:

@interface MyViewController : UIViewController <UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout> 

En .m:

UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init]; 
UICollectionView *myCollectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, 320, 480) collectionViewLayout:flowLayout]; 
[myCollectionView setDelegate:self]; 
[myCollectionView setDataSource:self]; 
[myCollectionView setIndicatorStyle:UIScrollViewIndicatorStyleBlack]; 
[myCollectionView setScrollIndicatorInsets:UIEdgeInsetsMake(0, 0, 0, -4)]; 
[myCollectionView setBackgroundColor:[UIColor whiteColor]]; 
[myCollectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"CustomCell"]; 
[self.view addSubview:myCollectionView]; 

Ensuite, pour les méthodes de délégués:

-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView; 
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section; 
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath; 
-(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section; 
-(CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section; 
-(CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section; 
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath; 
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath;