Bonjour,

Je cree une application iPhone et je souhaiterai savoir comment afficher un petit texte "Hello World !"
dans une vue.

Peut etre que je m'y prend mal ...
Voici mon code :

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 100, 0, 0)];
label.text = @"Hello World!";
[self.viewController.view addSubview:label];

Mon objectif final est de savoir comment insérer déversent composant dans une view.
Mais inutile que j'aille plus loin si je n'y arrive pas avec un simple "Hello World!"

PS : Je n'ai aucune erreur dans la console, mais je ne vois rien.
PS 2 : Ma view contient une video* ... est ce ca le probeme ? iOS est il incapable d'afficher du texte (ou tout autre composant) sur une video ?

*ma video est elle correctement affichee avec le code suivant:

[self.viewController.view addSubview:moviePlayer.view];
[moviePlayer setFullscreen:YES animated:NO];

7 réponses


Salut,

Quel est le rapport avec NodeJS ?

Tres bonne question.
J'aurai prefere mettre ca dans "Obejective C" mais ca n'existe pas donc comme j'ai choisis la technologie la plus importante dans ce projet : A savoir node JS.

D'accord, le soucis c'est que la plupart d'entre nous sommes dev web, et les langages comme le C (ou objective C), on ne maitrise pas forcément. Après peut-être que quelqu'un pourra t'aider oui.

Salut,

tes lignes de codes sont correctes mais en aucun cas tu définis l'emplacement de ton label en 0, 0 et ta movie doit avoir avoir le même emplacement

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 100, 0, 0)];
label.text = @"Hello World!";
CGRect frame = label.frame;

// pour l'exemple
frame.origin.x = 100; 
frame.origin.y = 50;

label.frame = frame;
[self.viewController.view addSubview:label];

Normalement tu peux faire comme ça.

Mais ensuite pour te facilité la tache tu peux utiliser le storyboard implanté dans xcode.

Salut Ch0c4,

Je viens de rentrer chez moi (je suis au Japon là) du coup je te répondrai demain quand je serais face au code source .
En tout cas, un grand merci.

Bonjour,

me voici donc devant mon code source. J'ai essaye ton code, mais visiblement rien ne s'affiche (je n'ai pas d'erreur pourtant dans ma console).
Voici le code que j'ai repris : StreamingMedia.m
Source : https://github.com/nchutchind/Streaming-Media-Cordova-Plugin/blob/master/src/ios/StreamingMedia.m

La fonction que je souhaite modifier est la suivante : startPlayer()

Voici ce qui a ete fait jusqu'a maintenant :

-(void)startPlayer:(NSString*)uri {
    NSURL *url = [NSURL URLWithString:uri];

    moviePlayer =  [[MPMoviePlayerController alloc] initWithContentURL:url];

    // Listen for playback finishing
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlayBackDidFinish:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:moviePlayer];
    // Listen for click on the "Done" button
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(doneButtonClick:)
                                                 name:MPMoviePlayerWillExitFullscreenNotification
                                               object:nil];
    // Listen for orientation change
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(orientationChanged:)
                                                 name:UIDeviceOrientationDidChangeNotification
                                               object:nil];

    moviePlayer.controlStyle = MPMovieControlStyleDefault;

    moviePlayer.shouldAutoplay = YES;
    if (imageView != nil) {
        [moviePlayer.backgroundView setAutoresizesSubviews:YES];
        [moviePlayer.backgroundView addSubview:imageView];
    }

    moviePlayer.backgroundView.backgroundColor = backgroundColor;

    [self.viewController.view addSubview:moviePlayer.view];

    // Note: animating does a fade to black, which may not match background color
    [moviePlayer setFullscreen:YES animated:NO];

    // Voici mon code :

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 100, 0, 0)];
    label.text = @"Hello World!";

    CGRect frame = label.frame;

    // pour l'exemple
    frame.origin.x = 100; 
    frame.origin.y = 50;

    label.frame = frame;

    [self.viewController.view addSubview:label];
}

Ou est mon erreur ?
La video elle s'affiche correctement pourtant ...
Est il impossible d'afficher des composants (texte, etc...) sur une video ?

Salut, à toi de varier frame.origin.x et frame.origin.y pour pouvoir le faire apparaître mais est-ce que tu as accès au storyboard car c'est beaucoup plus simple de placer tes elements grâce au storyboard de ton appli avec xcode.