0Pricing
Objective-C iOS Development for Legacy & Enterprise Apps · Leçon

Mise en page automatique avec NSLayoutConstraint

Construisez des interfaces UIKit adaptatives en code avec les contraintes Auto Layout afin que les vues se redimensionnent correctement selon les appareils et les orientations.

Mise en page automatique avec NSLayoutConstraint est une leçon Objective-C iOS Development for Legacy & Enterprise Apps gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Objective-C iOS Development for Legacy & Enterprise Apps, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Objective-C iOS Development for Legacy & Enterprise Apps comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Why Auto Layout?

Hardcoded frames break on different screen sizes and rotations. Auto Layout describes relationships between views — constraints — and the system computes the right frames at runtime.

Constraints Describe Rules

A constraint is a linear equation: one attribute equals a multiple of another plus a constant. For example, a button's leading edge equals its superview's leading edge plus 20 points.

Disabling Autoresizing Masks

When adding constraints in code, you must first turn off the old autoresizing system on the view, or constraints will conflict.

label.translatesAutoresizingMaskIntoConstraints = NO;

Creating a Constraint

The classic API is NSLayoutConstraint constraintWithItem:. It is verbose but explicit.

NSLayoutConstraint *c =
  [NSLayoutConstraint constraintWithItem:label
    attribute:NSLayoutAttributeLeading
    relatedBy:NSLayoutRelationEqual
    toItem:self.view
    attribute:NSLayoutAttributeLeading
    multiplier:1.0 constant:20];

Activating Constraints

A constraint does nothing until activated. Use activateConstraints: to turn an array of them on at once.

[NSLayoutConstraint activateConstraints:@[c]];

Anchor API

Modern UIKit offers a cleaner anchor syntax. Each view exposes anchors like leadingAnchor and topAnchor.

[label.leadingAnchor constraintEqualToAnchor:self.view.leadingAnchor constant:20].active = YES;
[label.topAnchor constraintEqualToAnchor:self.view.topAnchor constant:40].active = YES;

Width and Height

Constrain size directly with dimension anchors.

[label.widthAnchor constraintEqualToConstant:200].active = YES;
[label.heightAnchor constraintEqualToConstant:44].active = YES;

Safe Area Layout Guide

Pin views to the safeAreaLayoutGuide so content stays clear of notches, status bars, and home indicators.

[label.topAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.topAnchor].active = YES;

Constraint Priorities

Every constraint has a priority from 1 to 1000. When constraints conflict, lower-priority ones yield. Required constraints are 1000; flexible ones use values like 750.

c.priority = UILayoutPriorityDefaultHigh; // 750

Intrinsic Content Size

Views like labels and buttons report an intrinsic content size based on their text. You often only need to pin position, letting the view size itself.

Debugging Layout

Conflicts print warnings to the console listing the fighting constraints. Use the View Hierarchy Debugger in Xcode to inspect frames and constraints visually.

Quick Check

Test your Auto Layout knowledge.

Recap

You learned Auto Layout in UIKit:

  • Constraints express relationships, not fixed frames
  • Set translatesAutoresizingMaskIntoConstraints = NO
  • Create with NSLayoutConstraint or the cleaner anchor API
  • Activate constraints and pin to the safe area
  • Use priorities and intrinsic size for flexible layouts

Auto Layout makes legacy UIs adapt to every device.

Questions Fréquemment Posées

La leçon « Mise en page automatique avec NSLayoutConstraint » est-elle gratuite ?

Oui — le texte complet de « Mise en page automatique avec NSLayoutConstraint » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Objective-C iOS Development for Legacy & Enterprise Apps, passe à CoddyKit PRO. Le cours Objective-C iOS Development for Legacy & Enterprise Apps comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Mise en page automatique avec NSLayoutConstraint » ?

Construisez des interfaces UIKit adaptatives en code avec les contraintes Auto Layout afin que les vues se redimensionnent correctement selon les appareils et les orientations. Tu pratiques Objective-C iOS Development for Legacy & Enterprise Apps avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Objective-C iOS Development for Legacy & Enterprise Apps ?

Aucune expérience préalable n'est requise. Objective-C iOS Development for Legacy & Enterprise Apps sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Mise en page automatique avec NSLayoutConstraint » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Objective-C iOS Development for Legacy & Enterprise Apps ?

Oui. Chaque leçon Objective-C iOS Development for Legacy & Enterprise Apps inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. UIView et UIViewController
  2. Contrôles et événements d’interface courants
  3. Vues tabulaires et vues de collection
  4. Mise en page automatique avec NSLayoutConstraint
← Retour à Objective-C iOS Development for Legacy & Enterprise Apps