iOS Créer un UILabel


Exemple

Avec un cadre

Lorsque vous connaissez les dimensions exactes que vous souhaitez définir pour votre étiquette, vous pouvez initialiser une UILabel avec un cadre CGRect .

Rapide

let frame = CGRect(x: 0, y: 0, width: 200, height: 21)
let label = UILabel(frame: frame)
view.addSubview(label)

Objectif c

CGRect frame = CGRectMake(0, 0, 200, 21);
UILabel *label = [[UILabel alloc] initWithFrame:frame];
[view addSubview:label];

Avec mise en page automatique

Vous pouvez ajouter des contraintes sur un UILabel lorsque vous souhaitez UILabel calcule dynamiquement son cadre à l'exécution.

Rapide

let label = UILabel()
label.backgroundColor = .red
label.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(label)

NSLayoutConstraint.activate([
    //stick the top of the label to the top of its superview:
    label.topAnchor.constraint(equalTo: view.topAnchor)

    //stick the left of the label to the left of its superview
    //if the alphabet is left-to-right, or to the right of its 
    //superview if the alphabet is right-to-left:
    label.leadingAnchor.constraint(equalTo: view.leadingAnchor)

    //stick the label's bottom to the bottom of its superview:
    label.bottomAnchor.constraint(equalTo: view.bottomAnchor)

    //the label's width should be equal to 100 points:
    label.widthAnchor.constraint(equalToConstant: 100)
])

Objectif c

UILabel *label = [[UILabel alloc] init];

Avec Objective-c + Visual Format Language (VFL)

  UILabel *label = [UILabel new];
  label.translatesAutoresizingMaskIntoConstraints = NO;
  [self.view addSubview label];
  // add horizontal constraints with 5 left and right padding from the leading and trailing

  [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-5-[labelName]-5-|"
                                                                    options:0
                                                                    metrics:nil
                                                                      views:@{@"labelName":label}]];
  // vertical constraints that will use the height of the superView with no padding on top and bottom
  [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[labelName]|"
                                                                    options:0
                                                                    metrics:nil
                                                                      views:@{@"labelName":label}]]

La documentation de VFL peut être trouvée ici

Une fois l'étiquette créée, veillez à définir les dimensions via Mise en forme automatique. Xcode affichera les erreurs s'il est mal fait.

Avec Interface Builder

Vous utilisez également Interface Builder pour ajouter un UILabel à votre fichier Storyboard ou .xib en faisant glisser une Label du panneau Bibliothèque d'objets et en la déposant dans une vue du canevas:

Capture d'écran d'Interface Builder

Au lieu de spécifier un cadre (position et taille) pour un UILabel programme, un Storyboard ou un .xib vous permet d'utiliser Auto Layout pour ajouter des contraintes au contrôle.

Pour accéder à cette étiquette créée à partir de storyboard ou de xib créez un IBOutlet de cette étiquette.

Liaison entre Interface Builder et View Controller

Une fois que vous avez ajouté un UILabel à votre Storyboard ou .xib le fichier, vous pouvez le lier à votre code en appuyant sur Control ⌃ , puis en faisant glisser la souris entre UILabel et votre ViewController . ont le même effet.

entrer la description de l'image ici

Dans la boîte de dialogue des propriétés, vous pouvez définir le nom de UILabel et le définir comme strong ou weak . Pour plus d'informations sur strong et weak , voir ceci ,

L'autre solution consiste à faire en sorte que le point de vente soit programmé comme suit:

Rapide

@IBOutlet weak var nameLabel : UILabel!

Objectif c

@property (nonatomic, weak) IBOutlet UILabel *nameLabel;