Leading και διάστιχο: τι είναι και ρύθμιση σε iOS και Android

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-07-24 Χρόνος ανάγνωσης: 9 λεπ

Leading (leading) — είναι η απόσταση μεταξύ των γραμμών βάσης γειτονικών γραμμών κειμένου, η οποία καθορίζει άμεσα την άνεση ανάγνωσης. Ο όρος προέρχεται από τα φυσικά τυπογραφικά στοιχεία: μεταξύ των γραμμών τοποθετούνταν λωρίδες μολύβδου (lead strips) για την αύξηση του διαστήματος. Στη σύγχρονη κινητή ανάπτυξη, το leading υλοποιείται μέσω των lineSpacing και lineHeightMultiple στο iOS στο NSAttributedString και μέσω lineSpacing στο Android στο TextView. Σύμφωνα με το Apple NSMutableParagraphStyle Documentation, το διάστιχο ορίζεται σε σημεία και μπορεί να συνδυαστεί με τον πολλαπλασιαστή ύψους γραμμής.

Κύρια

  • Leading — απόσταση μεταξύ των γραμμών βάσης των γραμμών, που επηρεάζει την αναγνωσιμότητα του κειμένου
  • Στο iOS ρυθμίζεται μέσω NSParagraphStyle: lineSpacing και lineHeightMultiple
  • Στο Android ελέγχεται μέσω lineSpacingExtra και lineSpacingMultiplier στο TextView
  • Βέλτιστο leading για κινητές διεπαφές: 120-150% του μεγέθους γραμματοσειράς
  • Επηρεάζει την προσβασιμότητα: το ανεπαρκές διάστιχο μειώνει την αναγνωσιμότητα του κειμένου

Τι είναι το leading και το διάστιχο

Leading (προφέρεται „lending”) — είναι η κατακόρυφη απόσταση μεταξύ των γραμμών βάσης γειτονικών γραμμών στην τυπογραφία. Γραμμή βάσης — η αόρατη γραμμή στην οποία τοποθετούνται οι χαρακτήρες κειμένου. Όσο μεγαλύτερο είναι το leading, τόσο πιο ελεύθερα τοποθετούνται οι γραμμές μεταξύ τους. Στην ψηφιακή τυπογραφία, το leading συχνά ονομάζεται διάστιχο ή ύψος γραμμής.

Ιστορικά, ο όρος εμφανίστηκε στην εποχή της μεταλλικής τυπογραφίας: οι στοιχειοθέτες τοποθετούσαν λεπτές λωρίδες μολύβδου μεταξύ των γραμμών για να αυξήσουν το διάστημα. Στις σύγχρονες γραμματοσειρές, το leading ορίζεται ως αναλογία προς το μέγεθος γραμματοσειράς. Η προεπιλεγμένη τιμή συστήματος είναι 1.2 (120% του μεγέθους γραμματοσειράς), αλλά για μεγάλα κείμενα και κινητές διεπαφές συνιστάται μεγαλύτερη τιμή. Σύμφωνα με τις Οδηγίες Τυπογραφίας Material Design, το βέλτιστο ύψος γραμμής για διεπαφές ιστού και κινητών είναι 1.4-1.5 για το κύριο κείμενο.

Διαφορά μεταξύ leading και line spacing: leading — πλήρης απόσταση από γραμμή βάσης σε γραμμή βάσης, line spacing — απόσταση μεταξύ του κάτω ορίου μιας γραμμής και του άνω ορίου της επόμενης. Στα περισσότερα κινητά API (iOS NSParagraphStyle, Android TextView) χρησιμοποιείται ακριβώς το line spacing ως πρόσθετη απόσταση πάνω από το φυσικό ύψος γραμμής. Αυτό είναι σημαντικό να λαμβάνεται υπόψη κατά τον υπολογισμό του συνολικού διάστιχου.

Βέλτιστες τιμές leading για κινητές διεπαφές

Η επιλογή του βέλτιστου leading εξαρτάται από διάφορους παράγοντες: μέγεθος γραμματοσειράς, μήκος γραμμής, πλαίσιο χρήσης και κοινό. Για κινητές διεπαφές με τυπικό μήκος γραμμής 40-60 χαρακτήρων, συνιστάται leading από 1.4 έως 1.6 του μεγέθους γραμματοσειράς. Οι σύντομες γραμμές (ετικέτες, κουμπιά) μπορούν να χρησιμοποιούν μικρότερο leading — 1.0-1.2. Τα μεγάλα κείμενα (άρθρα, περιγραφές) — μεγαλύτερο leading, έως 1.8 για μέγιστη αναγνωσιμότητα.

Πειραματικά δεδομένα: έρευνα του Wichita State University Software Usability Laboratory έδειξε ότι το leading 1.5 αυξάνει την ταχύτητα ανάγνωσης κατά 7.5% σε σύγκριση με το leading 1.0 στο ίδιο πλάτος γραμμής. Για χρήστες με δυσλεξία, το βέλτιστο leading είναι ακόμη υψηλότερο — έως 1.8. Αυτά τα δεδομένα επιβεβαιώνονται από τις συστάσεις WCAG 2.2, οι οποίες απαιτούν τη δυνατότητα αύξησης του διάστιχου έως 1.5 χωρίς απώλεια περιεχομένου.

Επίδραση της γραμματοσειράς: γραμματοσειρές με υψηλό x-height (σχετικό ύψος πεζών γραμμάτων) απαιτούν μεγαλύτερο leading από γραμματοσειρές με χαμηλό x-height. Για παράδειγμα, η Helvetica (υψηλό x-height) συνιστά leading 1.5 για το κύριο κείμενο, ενώ η Didot (χαμηλό x-height) — 1.3. Αυτό οφείλεται στο γεγονός ότι σε υψηλό x-height, οι γραμμές συγχωνεύονται οπτικά γρηγορότερα με το ίδιο διάστιχο.

ΠλαίσιοΣυνιστώμενο leadingΠαράδειγμα iOS
Επικεφαλίδες (24-36pt)1.0 — 1.2lineHeightMultiple: 1.1
Κύριο κείμενο (14-18pt)1.4 — 1.6lineHeightMultiple: 1.5
Μικρό κείμενο (10-13pt)1.3 — 1.5lineHeightMultiple: 1.4
Άρθρα και μεγάλο περιεχόμενο1.5 — 1.8lineHeightMultiple: 1.6
Προσβασιμότητα (δυσλεξία)1.6 — 2.0lineHeightMultiple: 1.8

Υλοποίηση leading στο iOS μέσω NSParagraphStyle

Στο iOS, το διάστιχο ελέγχεται μέσω της κλάσης NSMutableParagraphStyle, η οποία περιέχει δύο βασικές ιδιότητες: lineSpacing (πρόσθετη απόσταση μεταξύ γραμμών σε σημεία) και lineHeightMultiple (πολλαπλασιαστής ύψους γραμμής). Αυτές οι ιδιότητες λειτουργούν μαζί: το συνολικό ύψος γραμμής υπολογίζεται ως το φυσικό ύψος γραμματοσειράς πολλαπλασιασμένο με lineHeightMultiple συν lineSpacing.

swift
let paragraphStyle = NSMutableParagraphStyle()

// Μέθοδος 1: πολλαπλασιαστής ύψους γραμμής
paragraphStyle.lineHeightMultiple = 1.5

// Μέθοδος 2: πρόσθετη απόσταση μεταξύ γραμμών
paragraphStyle.lineSpacing = 4.0

// Εφαρμογή μέσω NSAttributedString
let attributedText = NSAttributedString(
    string: "Text with custom line spacing",
    attributes: [
        .paragraphStyle: paragraphStyle
    ]
)

lineHeightMultiple — η προτιμώμενη μέθοδος, καθώς κλιμακώνεται αυτόματα όταν αλλάζει το μέγεθος γραμματοσειράς. Το lineSpacing ορίζεται σε απόλυτα σημεία και δεν κλιμακώνεται, γεγονός που μπορεί να οδηγήσει σε ασυνέπειες κατά τη χρήση του Dynamic Type. Σύμφωνα με τον Οδηγό Προγραμματισμού Κειμένου Apple, για διεπαφές συμβατές με προσβασιμότητα, χρησιμοποιήστε lineHeightMultiple σε συνδυασμό με UIFontMetrics.

SwiftUI παρέχει τον τροποποιητή .lineSpacing() για Text και VStack. Σε αντίθεση με το UIKit, στο SwiftUI το διάστιχο ορίζεται σε σημεία και δεν έχει ενσωματωμένο πολλαπλασιαστή. Για την υλοποίηση του πολλαπλασιαστή, ο προγραμματιστής πρέπει να υπολογίσει χειροκίνητα το διάστιχο βάσει του μεγέθους γραμματοσειράς. Περιορισμός: το SwiftUI δεν υποστηρίζει άμεσα το lineHeightMultiple — χρησιμοποιήστε .lineSpacing(CGFloat) με υπολογισμένη τιμή.

swift
struct LeadingTextView: View {
    let fontSize: CGFloat = 17

    var lineSpacing: CGFloat {
        fontSize * 0.5 // 50% του μεγέθους γραμματοσειράς
    }

    var body: some View {
        Text("Διάστιχο")
        Text("Πολλαπλασιαστής 1.5")
            .lineSpacing(lineSpacing)
            .font(.system(size: fontSize))
    }
}

Ρύθμιση διάστιχου στο Android

Στο Android, το διάστιχο ορίζεται μέσω δύο χαρακτηριστικών TextView: lineSpacingExtra (πρόσθετη απόσταση σε px) και lineSpacingMultiplier (πολλαπλασιαστής ύψους γραμμής, προεπιλογή 1.0). Παρόμοια με το iOS, ο πολλαπλασιαστής κλιμακώνεται όταν αλλάζει το μέγεθος γραμματοσειράς, ενώ το extra είναι απόλυτη τιμή. Για διεπαφές συμβατές με προσβασιμότητα, προτιμάται η χρήση πολλαπλασιαστή.

groovy
// Σε διάταξη XML
<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Text with line spacing"
    android:lineSpacingExtra="4dp"
    android:lineSpacingMultiplier="1.5"
    android:textSize="16sp" />

// Προγραμματιστικά σε Kotlin
val textView = findViewById<TextView>(R.id.contentText)
textView.setLineSpacing(
    TypedValue.applyDimension(
        TypedValue.COMPLEX_UNIT_DIP,
        4f,
        resources.displayMetrics
    ),
    1.5f
)

Compose — το σύγχρονο πλαίσιο UI Android — χρησιμοποιεί την παράμετρο lineHeight στον τροποποιητή TextStyle. Σε αντίθεση με την προσέγγιση XML, στο Compose το lineHeight ορίζεται ως πλήρες ύψος γραμμής σε sp (προεπιλογή = fontSize * 1.2). Για να ορίσετε τον πολλαπλασιαστή, ο προγραμματιστής καθορίζει το lineHeight ως ποσοστό του fontSize: Παράδειγμα: TextStyle(fontSize = 16.sp, lineHeight = 24.sp) δίνει πολλαπλασιαστή 1.5.

Περιορισμός: στο Android πριν από το API 28, τα lineSpacingExtra και lineSpacingMultiplier δεν λειτουργούν σωστά με ορισμένες γραμματοσειρές, ειδικά με προσαρμοσμένες (TTF/OTF). Συνιστάται δοκιμή σε πραγματικές συσκευές και λήψη υπόψη ότι το systemTextView χρησιμοποιεί προεπιλεγμένα lineSpacingMultiplier 1.0 — χωρίς πρόσθετη απόσταση. Για μεγάλα κείμενα σε ScrollView, ορίστε ρητά το διάστιχο.

Διάστιχο στην ανάπτυξη ιστού μέσω CSS line-height

Στον ιστό, το διάστιχο ορίζεται από την ιδιότητα CSS line-height, η οποία μπορεί να είναι αριθμός (πολλαπλασιαστής), ποσοστό, μονάδες μήκους (px, em) ή η λέξη-κλειδί normal. Ο αριθμητικός πολλαπλασιαστής — η προτιμώμενη μέθοδος, καθώς κληρονομείται και κλιμακώνεται σε σχέση με το μέγεθος γραμματοσειράς των θυγατρικών στοιχείων. Η τιμή normal αντιστοιχεί περίπου στο 1.2 για τις περισσότερες γραμματοσειρές.

css
/* Numerical multiplier (recommended) */
body {
    font-size: 16px;
    line-height: 1.5;
}

/* Percentage value */
.article-content {
    line-height: 150%;
}

/* Fixed value (does not scale) */
.small-text {
    font-size: 12px;
    line-height: 18px;
}

Αριθμητικός πολλαπλασιαστής vs em: το line-height: 1.5 και το line-height: 1.5em είναι διαφορετικά πράγματα. Ο αριθμητικός πολλαπλασιαστής κληρονομείται ως υπολογισμένη τιμή και υπολογίζεται εκ νέου για κάθε θυγατρικό στοιχείο βάσει του font-size του. Το em κληρονομείται ως σταθερή υπολογισμένη τιμή βάσει του font-size του γονέα. Αυτή είναι μια κρίσιμη διαφορά: όταν το font-size: 20px βρίσκεται μέσα σε font-size: 16px, το line-height: 1.5 δίνει 30px, ενώ το line-height: 1.5em — 24px (από τον γονέα). Σύσταση: χρησιμοποιείτε πάντα αριθμητικό πολλαπλασιαστή.

Σύγκριση ρυθμίσεων leading σε iOS, Android και ιστό

Παρά τα διαφορετικά API, η αρχή ρύθμισης του διάστιχου είναι η ίδια σε όλες τις πλατφόρμες. Ο πολλαπλασιαστής (multiplier) κλιμακώνεται όταν αλλάζει το μέγεθος γραμματοσειράς και είναι φιλικός προς την προσβασιμότητα. Η απόλυτη τιμή (spacing) δεν κλιμακώνεται και μπορεί να οδηγήσει σε προβλήματα κατά τη χρήση Dynamic Type ή ρυθμίσεων μεγάλου κειμένου.

Στρατηγική cross-platform: ορίστε το lineHeight στο σύστημα σχεδιασμού ως πολλαπλασιαστή του fontSize. Για παράδειγμα, σε διακριτικά σχεδιασμού: line-height-body = 1.5, line-height-heading = 1.1. Κάθε πλατφόρμα υλοποιεί αυτόν τον πολλαπλασιαστή με το δικό της API: iOS — lineHeightMultiple, Android — lineSpacingMultiplier, Web — line-height: 1.5. Αυτό εγγυάται το ίδιο οπτικό αποτέλεσμα σε όλες τις πλατφόρμες.

ΠλατφόρμαAPI πολλαπλασιαστήAPI απόστασης
iOS UIKitNSParagraphStyle.lineHeightMultipleNSParagraphStyle.lineSpacing
iOS SwiftUI.lineSpacing (χειροκίνητος υπολογισμός).lineSpacing(CGFloat)
Android XMLandroid:lineSpacingMultiplierandroid:lineSpacingExtra
Android ComposeTextStyle.lineHeight (σε sp)TextStyle.lineHeight
Web CSSline-height: {αριθμός}line-height: {px/em}

Σημαντική απόχρωση: στο iOS, το lineHeightMultiple εφαρμόζεται στο πλήρες ύψος γραμμής (συμπεριλαμβανομένων των ascender + descender της γραμματοσειράς), ενώ στο Android, το lineSpacingMultiplier — στο ύψος γραμμής που υπολογίζεται από τη μηχανή απόδοσης Minikin. Στην πράξη, αυτό οδηγεί σε μικρές διαφορές στο οπτικό leading με την ίδια τιμή πολλαπλασιαστή. Για pixel-perfect αντιστοίχιση, χρησιμοποιήστε απόλυτες τιμές με προσαρμογή ανά πλατφόρμα.

Συχνές Ερωτήσεις

Σε τι διαφέρει το leading από το line spacing;

Leading — πλήρης απόσταση από τη γραμμή βάσης μιας γραμμής στη γραμμή βάσης της επόμενης. Line spacing — πρόσθετη απόσταση μεταξύ γραμμών που προστίθεται στο φυσικό ύψος γραμμής. Στο iOS, το lineSpacing είναι ακριβώς η πρόσθετη απόσταση, όχι το πλήρες ύψος.

Ποιο leading να χρησιμοποιήσω για προσβασιμότητα;

Για συμμόρφωση με WCAG 2.2, χρησιμοποιήστε line-height 1.5 για το κύριο κείμενο. Οι χρήστες με δυσλεξία και προβλήματα όρασης διαβάζουν καλύτερα κείμενο με leading από 1.6 έως 1.8. Βεβαιωθείτε ότι ο χρήστης μπορεί να αυξήσει το διάστιχο χωρίς απώλεια περιεχομένου.

Γιατί το leading στο SwiftUI διαφέρει από το UIKit;

SwiftUI χρησιμοποιεί τη δική του μηχανή απόδοσης, όπου το lineSpacing είναι η απόσταση μεταξύ γραμμών σε σημεία χωρίς ενσωματωμένο πολλαπλασιαστή. Στο UIKit, το lineHeightMultiple κλιμακώνεται με το μέγεθος γραμματοσειράς. Για ομοιομορφία στο SwiftUI, υπολογίστε το lineSpacing ως fontSize * 0.5 για πολλαπλασιαστή 1.5.

Επηρεάζει το leading την απόδοση κύλισης;

Δεν υπάρχει άμεση επίδραση στο FPS, αλλά το μεγαλύτερο leading αυξάνει το ύψος περιεχομένου και, κατά συνέπεια, τον αριθμό κελιών στο UICollectionView/RecyclerView, το οποίο επηρεάζει έμμεσα την απόδοση. Για λίστες με χιλιάδες στοιχεία, βελτιστοποιήστε το leading στο σύστημα σχεδιασμού.

Πώς να υπολογίσω το leading για μη τυπική γραμματοσειρά;

Χρησιμοποιήστε τον τύπο: line-height = font-size + (font-size * multiplier). Για γραμματοσειρά 16pt με πολλαπλασιαστή 1.5: 16 + (16 * 0.5) = 24pt. Ελέγξτε οπτικά σε πραγματικό κείμενο — διαφορετικές γραμματοσειρές απαιτούν ατομική ρύθμιση.

Συμπεράσματα

  • Leading — απόσταση μεταξύ των γραμμών βάσης των γραμμών που καθορίζει την αναγνωσιμότητα του κειμένου
  • Βέλτιστο διάστιχο για κινητές διεπαφές: 1.4 — 1.6 του μεγέθους γραμματοσειράς
  • Στο iOS ρυθμίζεται μέσω lineHeightMultiple στο NSMutableParagraphStyle
  • Στο Android ελέγχεται μέσω lineSpacingMultiplier στο TextView ή lineHeight στο Compose
  • Στον ιστό χρησιμοποιείται line-height με αριθμητικό πολλαπλασιαστή (όχι em, όχι px)
  • Πολλαπλασιαστής — η προτιμώμενη μέθοδος: κλιμακώνεται σε Dynamic Type και ρυθμίσεις προσβασιμότητας
  • Για προσβασιμότητα χρησιμοποιήστε leading 1.5 και άνω, δώστε στον χρήστη τη δυνατότητα να αυξήσει το διάστημα

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης