Objective C : Inserer du texte dans une view

42824
,

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éponse

47855
,

Salut,

Quel est le rapport avec NodeJS ?

42824
,

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.

47855
,

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.

11243
,

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.

42824
,

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.

42824
,

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 ?

11243
,

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.