নিরাপদ অঞ্চল একটি বিন্যাস গাইড ( নিরাপদ অঞ্চল বিন্যাস গাইড ) ।
আপনার ভিউয়ের অংশটি উপস্থাপন করে এমন লেআউট গাইড যা বার এবং অন্যান্য সামগ্রী দ্বারা সজ্জিত নয়। আইওএস 11+ এ, অ্যাপল শীর্ষ এবং নীচের লেআউট গাইডগুলিকে ছাড়ছে এবং তাদের একক নিরাপদ অঞ্চল বিন্যাস গাইডের সাথে প্রতিস্থাপন করছে।
অনস্ক্রিনে দৃশ্যটি দৃশ্যমান হওয়ার সময়, এই গাইড দর্শনটির অংশটি প্রতিফলিত করে যা অন্য সামগ্রী দ্বারা আচ্ছাদিত নয়। দৃশ্যের নিরাপদ অঞ্চলটি নেভিগেশন বার, ট্যাব বার, টুলবার এবং অন্যান্য পূর্বপুরুষদের দ্বারা আচ্ছাদিত অঞ্চল প্রতিফলিত করে যা কোনও দৃশ্যের নিয়ামকের দর্শনকে অস্পষ্ট করে। (টিভিএস-এ, সুরক্ষিত অঞ্চলটি স্ক্রিনের বেজেলকে অন্তর্ভুক্ত করেছে, যেমন দ্বারা নির্ধারিত হয়েছেoverscanCompensationInsets
সম্পত্তি )) এটি ভিউ কন্ট্রোলারের দ্বারা নির্ধারিত কোনও অতিরিক্ত স্থানও কভার করে coversadditionalSafeAreaInsets
সম্পত্তি। যদি ভিউটি বর্তমানে কোনও ভিউ হায়ারার্কিতে ইনস্টল না করা থাকে বা এখনও অনস্ক্রিনে দৃশ্যমান না হয় তবে লেআউট গাইডটি সর্বদা ভিউটির প্রান্তগুলিতে মেলে।
দেখার নিয়ন্ত্রকের মূল দেখার জন্য, এই সম্পত্তিটির নিরাপদ অঞ্চলটি অনিচ্ছাকৃত দৃশ্যের নিয়ন্ত্রকের সামগ্রীর পুরো অংশ এবং আপনার নির্দিষ্ট যে কোনও অতিরিক্ত পোকামাকড়কে উপস্থাপন করে। ভিউ হায়ারার্কির অন্যান্য দর্শনগুলির জন্য, নিরাপদ অঞ্চলটি সেই দৃষ্টিভঙ্গির কেবল সেই অংশটিকেই প্রতিফলিত করে যা অস্পষ্ট। উদাহরণস্বরূপ, যদি কোনও দৃশ্যের সম্পূর্ণরূপে তার দৃশ্যের নিয়ন্ত্রণকারীর মূল দৃশ্যের নিরাপদ অঞ্চলে থাকে তবে এই সম্পত্তিটির প্রান্তের পোকা 0 হয়।
অ্যাপলের মতে, এক্সকোড 9 - রিলিজ নোট
ইন্টারফেস বিল্ডার ইউআইভিউ কনসট্রোলারের অবহিত শীর্ষ এবং নীচে লেআউট গাইডের প্রতিস্থাপন হিসাবে ইউআইভিউ.সেসএফআরিআলআউটআউটগুইড ব্যবহার করে। নতুন নিরাপদ অঞ্চলটি ব্যবহার করতে, ভিউ কন্ট্রোলারের জন্য ফাইল ইন্সপেক্টরটিতে সেফ এরিয়া লেআউট গাইড নির্বাচন করুন এবং তারপরে আপনার সামগ্রী এবং নতুন নিরাপদ অঞ্চল অ্যাঙ্করগুলির মধ্যে সীমাবদ্ধতা যুক্ত করুন। এটি আপনার সামগ্রীকে শীর্ষ এবং নীচের দণ্ডগুলি দ্বারা, এবং টিভিএস-তে ওভারস্ক্যান অঞ্চল দ্বারা অস্পষ্ট হতে বাধা দেয়। আইওএসের পূর্ববর্তী সংস্করণগুলিতে স্থাপনের সময় নিরাপদ অঞ্চলে সীমাবদ্ধতাগুলি টপ এবং নীচে রূপান্তরিত হয়।
বিদ্যমান (শীর্ষ এবং নীচে) লেআউট গাইড এবং নিরাপদ অঞ্চল বিন্যাস গাইডের মধ্যে একটি তুলনা (একই ধরণের দৃষ্টিভঙ্গি প্রভাব তৈরি করতে) হিসাবে এখানে সহজ রেফারেন্স দেওয়া আছে।
নিরাপদ অঞ্চল বিন্যাস:
স্বয়ংক্রিয়-বহির্বিন্যাস
নিরাপদ অঞ্চল বিন্যাস সহ কীভাবে কাজ করবেন?
সমাধান খুঁজতে এই পদক্ষেপগুলি অনুসরণ করুন:
- সক্ষম না হলে 'সেফ এরিয়া লেআউট' সক্ষম করুন।
- যদি তারা সুপার ভিউয়ের সাথে সংযোগ দেখায় এবং সমস্ত নিরাপদ বিন্যাস অ্যাঙ্কারের সাথে পুনরায় সংযুক্ত করে তবে 'সমস্ত প্রতিবন্ধকতা' সরান । বা একটি সীমাবদ্ধতার উপর ডাবল ক্লিক করুন এবং সুপার ভিউ থেকে নিরাপদ অ্যাঙ্গারে অ্যাঙ্কশন সংযোগ সম্পাদনা করুন
এখানে স্যাম্পল স্ন্যাপশট, নিরাপদ অঞ্চল বিন্যাস সক্ষম করতে এবং সীমাবদ্ধতা সম্পাদন করতে হয়।
এখানে উপরের পরিবর্তনের ফলাফল
SafeArea সহ লেআউট ডিজাইন
আইফোন এক্স এর জন্য ডিজাইনের সময়, আপনাকে অবশ্যই নিশ্চিত করতে হবে যে লেআউটগুলি স্ক্রিনটি পূরণ করবে এবং ডিভাইসের বৃত্তাকার কোণ, সেন্সর হাউজিং বা হোম স্ক্রিন অ্যাক্সেসের জন্য সূচক দ্বারা অস্পষ্ট নয়।
বেশিরভাগ অ্যাপ্লিকেশনগুলি যা নেভিগেশন বার, টেবিল এবং সংগ্রহের মতো স্ট্যান্ডার্ড, সিস্টেম সরবরাহিত ইউআই উপাদান ব্যবহার করে ডিভাইসের নতুন ফর্ম ফ্যাক্টরের সাথে স্বয়ংক্রিয়ভাবে খাপ খায়। পটভূমি উপকরণগুলি প্রান্তের প্রান্তে প্রসারিত হয় এবং ইউআই উপাদানগুলি যথাযথভাবে ইনসেট এবং অবস্থানযুক্ত হয়।
কাস্টম লেআউট সহ অ্যাপ্লিকেশনগুলির জন্য, আইফোন এক্সকে সমর্থন করাও তুলনামূলকভাবে সহজ হওয়া উচিত, বিশেষত যদি আপনার অ্যাপটি অটো লেআউট ব্যবহার করে এবং নিরাপদ অঞ্চল এবং মার্জিন লেআউট গাইড মেনে চলে।
এখানে নমুনা কোড রয়েছে (এর থেকে রেফার করুন: নিরাপদ অঞ্চল বিন্যাস গাইড ) :
রেফার করুন আপনি যদি কোডটিতে নিজের সীমাবদ্ধতা তৈরি করেন তবে প্রাসঙ্গিক লেআউট অ্যাঙ্কারগুলি পেতে ইউআইভিউ-র নিরাপদআরএলআউটআউটগাইড ব্যবহার করুন use কোডটি উপরের ইন্টারফেস বিল্ডারের উদাহরণটি আবার কেমন তা দেখতে এটি আবার তৈরি করুন:
ধরে নিলাম আমাদের ভিউ কন্ট্রোলারে একটি সম্পত্তি হিসাবে আমাদের সবুজ ভিউ রয়েছে:
private let greenView = UIView()
ভিউডিডলড থেকে কল করা মতামত এবং সীমাবদ্ধতাগুলি সেট করার জন্য আমাদের একটি ফাংশন থাকতে পারে:
private func setupView() {
greenView.translatesAutoresizingMaskIntoConstraints = false
greenView.backgroundColor = .green
view.addSubview(greenView)
}
মূল দর্শনটির লেআউটমার্গিনস গুইড ব্যবহার করে সর্বদা অগ্রণী এবং পিছনের মার্জিন সীমাবদ্ধতা তৈরি করুন:
let margins = view.layoutMarginsGuide
NSLayoutConstraint.activate([
greenView.leadingAnchor.constraint(equalTo: margins.leadingAnchor),
greenView.trailingAnchor.constraint(equalTo: margins.trailingAnchor)
])
এখন আপনি যদি কেবল আইওএস 11 টার্গেট না করেন তবে আপনাকে কেবল # উপলভ্য সহ নিরাপদ অঞ্চল বিন্যাস গাইড সীমাবদ্ধ করতে হবে এবং পূর্ববর্তী আইওএস সংস্করণগুলির জন্য শীর্ষ এবং নীচে বিন্যাস গাইডগুলিতে ফিরে যেতে হবে:
if #available(iOS 11, *) {
let guide = view.safeAreaLayoutGuide
NSLayoutConstraint.activate([
greenView.topAnchor.constraintEqualToSystemSpacingBelow(guide.topAnchor, multiplier: 1.0),
guide.bottomAnchor.constraintEqualToSystemSpacingBelow(greenView.bottomAnchor, multiplier: 1.0)
])
} else {
let standardSpacing: CGFloat = 8.0
NSLayoutConstraint.activate([
greenView.topAnchor.constraint(equalTo: topLayoutGuide.bottomAnchor, constant: standardSpacing),
bottomLayoutGuide.topAnchor.constraint(equalTo: greenView.bottomAnchor, constant: standardSpacing)
])
}
ফলাফল:
UIView
এক্সটেনশান অনুসরণ করে , আপনার জন্য SafeAreaLayout এর সাথে অগ্রগতিমূলকভাবে কাজ করা সহজ করুন।
extension UIView {
// Top Anchor
var safeAreaTopAnchor: NSLayoutYAxisAnchor {
if #available(iOS 11.0, *) {
return self.safeAreaLayoutGuide.topAnchor
} else {
return self.topAnchor
}
}
// Bottom Anchor
var safeAreaBottomAnchor: NSLayoutYAxisAnchor {
if #available(iOS 11.0, *) {
return self.safeAreaLayoutGuide.bottomAnchor
} else {
return self.bottomAnchor
}
}
// Left Anchor
var safeAreaLeftAnchor: NSLayoutXAxisAnchor {
if #available(iOS 11.0, *) {
return self.safeAreaLayoutGuide.leftAnchor
} else {
return self.leftAnchor
}
}
// Right Anchor
var safeAreaRightAnchor: NSLayoutXAxisAnchor {
if #available(iOS 11.0, *) {
return self.safeAreaLayoutGuide.rightAnchor
} else {
return self.rightAnchor
}
}
}
এখানে উদ্দেশ্য-সি-তে নমুনা কোড রয়েছে :
নিরাপদ অঞ্চল লেআউট গাইডের জন্য অ্যাপল বিকাশকারী অফিসিয়াল ডকুমেন্টেশন এখানে
আইফোন-এক্স এর জন্য ইউজার ইন্টারফেস ডিজাইন পরিচালনা করতে নিরাপদ অঞ্চল প্রয়োজন। সেফ এরিয়া লেআউটটি ব্যবহার করে আইফোন-এক্স এর জন্য ইউজার ইন্টারফেসটি কীভাবে ডিজাইন করা যায় তার জন্য এখানে প্রাথমিক গাইডলাইন রয়েছে