iOS Crea un UILabel

Esempio

Con una cornice

Quando conosci le dimensioni esatte che desideri impostare per l'etichetta, puoi inizializzare un UILabel con una cornice CGRect .

veloce

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

Objective-C

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

Con layout automatico

È possibile aggiungere vincoli su un UILabel quando si desidera che iOS calcoli dinamicamente il frame in fase di runtime.

veloce

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)
])

Objective-C

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

Con 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 documentazione VFL può essere trovata qui

Dopo aver creato l'etichetta, assicurati di impostare le dimensioni tramite Auto Layout. Xcode mostrerà errori se è fatto in modo improprio.

Con Interface Builder

Inoltre, si utilizza Interface Builder per aggiungere una UILabel allo Storyboard o .xib file .xib trascinando Label dal pannello Libreria oggetti e rilasciandola in una vista nell'area di disegno:

Screenshot da Interface Builder

Invece di specificare un frame (posizione e dimensione) per un UILabel a livello di UILabel , uno Storyboard o un file .xib consente di utilizzare Auto Layout per aggiungere vincoli al controllo.

Per accedere a questa etichetta creata da storyboard o xib creare un IBOutlet di questa etichetta.

Collegamento tra Interface Builder e View Controller

Dopo aver aggiunto un UILabel al vostro Storyboard o .xib il file è possibile collegare al vostro codice premendo Control ⌃ e trascinando il mouse tra UILabel al ViewController , o si potrebbe trascinare al codice mentre clic destro per la sua avere lo stesso effetto

inserisci la descrizione dell'immagine qui

Nella finestra di dialogo delle proprietà, puoi impostare il nome di UILabel e impostarlo come strong o weak . Per ulteriori informazioni su strong e weak , vedere questo ,

L'altro modo è di creare lo sbocco programmaticamente come segue:

veloce

@IBOutlet weak var nameLabel : UILabel!

Objective-C

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