Objective C : Inserer du texte dans une view

Par JapanFigs, il y a 10 ans


Javascript NodeJS

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

betaWeb, il y a 10 ans

Salut,

Quel est le rapport avec NodeJS ?

JapanFigs, il y a 10 ans

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.

betaWeb, il y a 10 ans

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.

Ch0c4, il y a 10 ans

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.

JapanFigs, il y a 10 ans

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.

JapanFigs, il y a 10 ans

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 ?

Ch0c4, il y a 10 ans

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.