pt — یہ کیا ہے، iOS میں Points اور اسکیلنگ

مصنف: IT Sectr اشاعت: 2026-02-25 مطالعے کا وقت: 8 منٹ

pt — points، iOS اور macOS میں پیمائش کی ایک منطقی اکائی جو انٹرفیس کو فزیکل اسکرین ریزولوشن سے الگ کرتی ہے۔ ایک point غیر Retina اسکرین (@1x) پر ایک پکسل اور Retina (@2x, @3x) پر دو یا تین پکسلز کے برابر ہوتا ہے۔ یہ مضمون pt کے کام کرنے کے اصول، مختلف اسکرینوں پر اسکیلنگ، CGPoint اور UIFont.pointSize کے استعمال کی وضاحت کرتا ہے۔

اہم نکات

  • pt — iOS کا ایک منطقی نقطہ، فزیکل اسکرین ریزولوشن سے آزاد
  • @1x, @2x, @3x — اسکیل فیکٹر جو یہ متعین کرتا ہے کہ ایک نقطہ پر کتنے پکسلز آتے ہیں
  • CGPoint — pt میں کوآرڈینیٹ کے لیے ساخت، تمام پوزیشننگ آپریشنز کی بنیاد
  • UIFont.pointSize — پوائنٹس میں فونٹ کا سائز، ہمیشہ pt میں واپس کیا جاتا ہے
  • اسکرین کا فاصلہ: iPhone 15 Pro — 460 PPI پکسل کثافت پر 1 pt = 3 px

iOS میں pt کیا ہے؟

pt (point) — iOS میں پیمائش کی ایک منطقی اکائی جو ڈیولپر کو انٹرفیس کو تجریدی کوآرڈینیٹ میں بیان کرنے کی اجازت دیتی ہے، جو ڈسپلے کی فزیکل ریزولوشن سے آزاد ہوتے ہیں۔ Apple نے 2010 میں iPhone 4 اور Retina ڈسپلے کے اجراء کے ساتھ points کا تصور متعارف کرایا۔ Retina سے پہلے، ڈیولپرز براہ راست پکسلز استعمال کرتے تھے — ایک UI پکسل ایک فزیکل پکسل کے برابر تھا۔

iOS کا کوآرڈینیٹ سسٹم پوائنٹس پر بنایا گیا ہے: نقطہ (0,0) اسکرین کے اوپری بائیں کونے میں ہے، X محور دائیں طرف جاتا ہے، Y محور نیچے کی طرف۔ ہر ڈیوائس کلاس کے لیے پوائنٹس میں اسکرین کا سائز مستقل رہتا ہے: iPhone SE — 375×667 pt، iPhone 15 Pro — 393×852 pt، iPad — 768×1024 pt (پورٹریٹ)، 1024×768 pt (لینڈ اسکیپ)۔ فزیکل ریزولوشن 1179×2556 px (iPhone 15 Pro) ہو سکتا ہے — لیکن ڈیولپر پوائنٹس کے ساتھ کام کرتا ہے۔

Apple Human Interface Guidelines کے مطابق، پوائنٹس UIKit کا بنیادی تجرید ہیں۔ تمام فریم ورک — UIKit، SwiftUI، Core Graphics، SpriteKit — پوائنٹس میں کام کرتے ہیں۔ پکسلز میں تبدیلی UIScreen.nativeScale کے ذریعے رینڈرنگ مرحلے میں خودکار طور پر ہوتی ہے۔

اسکیل فیکٹرز: @1x, @2x, @3x

اسکیل فیکٹر یہ متعین کرتا ہے کہ ایک منطقی نقطہ کے مقابل کتنے فزیکل پکسلز ہیں۔ Apple تین سطحیں استعمال کرتا ہے: @1x — 1 pt = 1 px (Retina کے بغیر iPad mini، پرانے ماڈلز)، @2x — 1 pt = 2 px (2020 سے پہلے کے زیادہ تر iPhone، iPad Retina)، @3x — 1 pt = 3 px (iPhone X اور نئے، iPhone 15 Pro سمیت)۔

ڈیوائسpt میں سائزpx میں سائزاسکیل
iPhone SE (تیسری نسل)375 × 667750 × 1334@2x
iPhone 14390 × 8441170 × 2532@3x
iPhone 15 Pro Max430 × 9321290 × 2796@3x
iPad Pro 12.9"1024 × 13662048 × 2732@2x
iPad mini (چھٹی نسل)744 × 11331488 × 2266@2x

اسکیل فیکٹر UIScreen.main.scale (UIKit کے لیے) اور @Environment(\.displayScale) (SwiftUI کے لیے) کے ذریعے قابل رسائی ہے۔ اسے اثاثے لوڈ کرتے وقت استعمال کیا جاتا ہے: سسٹم خودکار طور پر Assets.xcassets سے @2x یا @3x لاحقہ والی تصویر منتخب کرتا ہے۔ ڈیولپر کو Retina ڈیوائسز پر @1x تصاویر لوڈ نہیں کرنی چاہئیں — اس سے کارکردگی اور معیار کم ہوتا ہے۔

CGPoint اور پوائنٹس میں کوآرڈینیٹ

CGPoint ساخت iOS اور macOS میں کوآرڈینیٹ پیش کرنے کے لیے بنیادی قسم ہے۔ اس میں دو فیلڈز ہیں: x (CGFloat) اور y (CGFloat)، اقدار پوائنٹس میں متعین کی جاتی ہیں۔ CGPoint تمام Apple فریم ورکس میں استعمال ہوتا ہے: UIKit (frame.origin)، Core Graphics (CGContext)، SpriteKit (SKNode.position)، Core Animation (CALayer.position)۔

swift
// CGPoint — پوائنٹس میں کوآرڈینیٹ کے ساتھ کام
import UIKit

// ایک نقطہ بنانا
let point = CGPoint(x: 100.0, y: 200.0)
print("کوآرڈینیٹ: \(point.x), \(point.y)")

// ریاضی کے آپریشنز
let offset = CGPoint(x: 16.0, y: 8.0)
let translated = CGPoint(
    x: point.x + offset.x,
    y: point.y + offset.y
)

// نقاط کے درمیان فاصلہ
func distance(from a: CGPoint, to b: CGPoint) -> CGFloat {
    let dx = b.x - a.x
    let dy = b.y - a.y
    return sqrt(dx * dx + dy * dy)
}

// پوائنٹس کو پکسلز میں تبدیل کرنا
extension CGPoint {
    func toPixels(scale: CGFloat) -> CGPoint {
        CGPoint(x: x * scale, y: y * scale)
    }
}

مثال میں toPixels طریقہ UIScreen.main.scale کے ذریعے پوائنٹس کو فزیکل پکسلز میں تبدیل کرنے کا مظاہرہ کرتا ہے۔ UIKit میں یہ تبدیلی رینڈرنگ کے دوران خودکار طور پر ہوتی ہے، لیکن Core Graphics اور Metal کے ساتھ کام کرتے وقت ڈیولپر کو واضح پکسل تبدیلی کی ضرورت ہو سکتی ہے۔ تمام اینیمیشن حسابات، تصادم کا پتہ لگانا اور لے آؤٹ پوائنٹس میں انجام پاتے ہیں۔

UIFont.pointSize اور نوع ٹائپ

UIFont.pointSize پراپرٹی فونٹ کا سائز پوائنٹس میں واپس کرتی ہے — یہ iOS میں نوع ٹائپ کی معیاری اکائی ہے، جو طباعت سے وراثت میں ملی ہے (1 pt = 1/72 انچ)۔ Apple Mac OS کے ابتدائی ورژنز سے فونٹس کے لیے pt استعمال کر رہا ہے۔ iOS میں، فونٹ کا سائز UIFont.systemFont(ofSize:) یا SwiftUI Font.system(size:) کے ذریعے پوائنٹس میں متعین کیا جاتا ہے۔

swift
// Swift میں UIFont.pointSize کے ساتھ کام
import UIKit

// pt میں سائز کے ساتھ فونٹ بنانا
let titleFont = UIFont.systemFont(ofSize: 28.0, weight: .bold)
let bodyFont = UIFont.systemFont(ofSize: 17.0)
let captionFont = UIFont.systemFont(ofSize: 12.0)

// pointSize پڑھنا
print("عنوان کا سائز: \(titleFont.pointSize) pt")

// Dynamic Type — خودکار اسکیلنگ
let scaledFont = UIFontMetrics.default.scaledFont(for: bodyFont)
print("اسکیل کیا گیا: \(scaledFont.pointSize) pt")

// فونٹ سائز کا موازنہ
func font(from size: CGFloat, weight: UIFont.Weight) -> UIFont {
    UIFont.systemFont(ofSize: size, weight: weight)
}

UIFontMetrics — iOS 11 میں شامل کردہ ایک متحرک فونٹ اسکیلنگ میکانزم ہے۔ یہ صارف کی رسائی کی ترتیبات (Settings > Display & Brightness > Text Size) کی بنیاد پر pointSize کو خودکار طور پر ایڈجسٹ کرتا ہے۔ UIFontMetrics کے استعمال کے بغیر، فونٹس اسکیل نہیں ہوتے، جو WCAG رسائی کے تقاضوں کی خلاف ورزی کرتا ہے۔

pt بمقابلہ px: فرق

pt اور px کے درمیان فرق iOS ڈیولپمنٹ کو سمجھنے کے لیے اہم ہے۔ pt ایک منطقی اکائی ہے، px ایک فزیکل اکائی ہے۔ ایک نقطہ اسکیل فیکٹر کے لحاظ سے 1، 2 یا 3 پکسلز کے برابر ہو سکتا ہے۔ ڈیولپر پوائنٹس میں کام کرتا ہے، سسٹم راسٹرائزیشن مرحلے میں انہیں پکسلز میں تبدیل کرتا ہے۔

خصوصیتptpx
اکائی کی قسممنطقی (ڈیوائس سے آزاد)فزیکل (ہارڈویئر پکسل)
ریزولوشن پر منحصرنہیںہاں
استعمال کی جگہUIKit, SwiftUI, Core Graphics, لے آؤٹتصاویر, Metal, raw buffer
تبدیلی1 pt = scale × px (اسکیل 1 سے 3)1 px = pt / scale
مثال (iPhone 15 Pro)393 × 852 pt1179 × 2556 px

اہم نتیجہ: ایک ہی کلاس کے تمام ڈیوائسز پر پوائنٹس میں انٹرفیس کا سائز ایک جیسا ہوتا ہے۔ 375 pt چوڑی اسکرین — یہ iPhone SE اور iPhone 14 (بنیادی ماڈل) دونوں پر لاگو ہوتی ہے۔ فرق صرف اتنا ہے کہ ان 375 pt میں کتنے فزیکل پکسلز سما سکتے ہیں۔ یہ ہر ڈیوائس کے لیے دستی موافقت کے بغیر یکساں UI کو یقینی بناتا ہے۔

SwiftUI میں pt

SwiftUI میں، ڈیولپر واضح طور پر پوائنٹس میں کام نہیں کرتا — تمام سائز Dp (ڈیوائس سے آزاد پوائنٹس، pt کے برابر) کے ذریعے متعین کیے جاتے ہیں۔ SwiftUI رینڈرنگ کے دوران خودکار طور پر اسکیل فیکٹر لاگو کرتا ہے لیکن ماحولی قدر displayScale کے ذریعے اس تک رسائی فراہم کرتا ہے۔

swift
// SwiftUI — پوائنٹس اور اسکیل فیکٹر کے ساتھ کام
import SwiftUI

struct ContentView: View {
    @Environment(\.displayScale) private var displayScale

    var body: some View {
        VStack(spacing: 16) {
            Text("عنوان")
                .font(.system(size: 28, weight: .bold))

            Text("مثالی باڈی ٹیکسٹ")
                .font(.body)

            HStack {
                Text("اسکیل فیکٹر:")
                    .font(.caption)
                Text("\(displayScale, specifier: "%.1f")")
                    .font(.caption.weight(.bold))
            }
        }
        .padding(20)
        .frame(width: 300)
    }
}

SwiftUI فریم ورک کی سطح پر pt کو تجرید کرتا ہے۔ .font(.body) خودکار طور پر Dynamic Type استعمال کرتا ہے — فونٹ کا سائز صارف کی ترتیبات کے مطابق ڈھل جاتا ہے۔ SwiftUI پکسلز میں فونٹ کا سائز متعین کرنے کی اجازت نہیں دیتا — صرف Font اور نوع ٹائپ سسٹم کے ذریعے۔ یہ ڈیولپر کی اضافی کوشش کے بغیر انٹرفیس کی رسائی کو یقینی بناتا ہے۔

اکثر پوچھے گئے سوالات

pt اور px میں کیا فرق ہے؟

pt — iOS کا ایک منطقی نقطہ، اسکرین ریزولوشن سے آزاد۔ px — ڈسپلے کا ایک فزیکل پکسل۔ iPhone 15 Pro پر ایک نقطہ تین پکسلز (@3x) کے برابر ہے، iPad Pro پر — دو (@2x) کے برابر۔ ڈیولپر ہمیشہ پوائنٹس میں کام کرتا ہے۔

ڈیوائس کا اسکیل فیکٹر کیسے معلوم کریں؟

UIKit میں: UIScreen.main.scale۔ SwiftUI میں: @Environment(\.displayScale)۔ عام اقدار: 1.0 (@1x)، 2.0 (@2x)، 3.0 (@3x)۔ iPhone 15 Pro Max پر قدر 3.0 ہے۔

باڈی ٹیکسٹ کے لیے کون سا فونٹ سائز استعمال کریں؟

Apple مرکزی متن (UIFontTextStyle.body) کے لیے 17 pt تجویز کرتا ہے۔ عنوانات کے لیے 28–34 pt، کیپشنز کے لیے 12–13 pt۔ Dynamic Type اسٹائلز صارف کی رسائی کی ترتیبات کی بنیاد پر خودکار طور پر اسکیل ہوتے ہیں۔

iOS میں Dynamic Type کیا ہے؟

Dynamic Type — iOS 7 میں متعارف کردہ iOS خودکار فونٹ اسکیلنگ سسٹم۔ یہ متن کو سسٹم فونٹ سائز کی ترتیبات (Text Size) اور رسائی کے پیرامیٹرز (Bold Text, Larger Text) کے مطابق ڈھلنے دیتا ہے۔ UIFontMetrics یا SwiftUI Font اسٹائلز کے ذریعے لاگو کیا جاتا ہے۔

کیا iOS کے لیے @1x اثاثے بنانا ضروری ہے؟

نہیں۔ جدید Apple ڈیوائسز @2x یا @3x کے ساتھ Retina ڈسپلے استعمال کرتی ہیں۔ @1x تصاویر صرف غیر Retina iPad (iPad 2, iPad mini پہلی نسل) کے ساتھ مطابقت کے لیے ضروری ہیں۔ iOS 13 سے، تمام ڈیوائسز کم از کم @2x کو سپورٹ کرتی ہیں۔

خلاصہ

  • pt — iOS کی ایک منطقی اکائی جو انٹرفیس کو فزیکل ریزولوشن اور اسکیل فیکٹر سے الگ کرتی ہے
  • @2x اور @3x — Retina ڈسپلے کے لیے اسکیل فیکٹرز جو فی نقطہ پکسلز کی تعداد متعین کرتے ہیں
  • CGPoint — پوائنٹس میں کوآرڈینیٹ کے لیے ساخت، UIKit میں تمام پوزیشننگ آپریشنز کی بنیاد
  • UIFont.pointSize — UIFontMetrics کے ذریعے Dynamic Type سپورٹ کے ساتھ پوائنٹس میں فونٹ کا سائز
  • SwiftUI pt کو مکمل طور پر تجرید کرتا ہے، خودکار موافقت کے لیے Font اور Dynamic Type استعمال کرتا ہے
  • iOS اثاثے @2x اور @3x میں فراہم کیے جانے چاہئیں، جدید ڈیوائسز کے لیے @1x ضروری نہیں
  • Dynamic Type — ایک لازمی رسائی میکانزم جو صارف کے لیے خودکار طور پر فونٹس کو اسکیل کرتا ہے

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں