উত্তরটি হ'ল [view layoutIfNeeded]
।
কারণটা এখানে:
আপনি এখনও পরিদর্শন করে view.bounds.size.width
এবং view.bounds.size.height
(বা ফ্রেমটি সমান যা আপনি যদি না খেলেন ততই সমান view.transform
) তত্পরতার বর্তমান প্রস্থ এবং উচ্চতা পান ।
আপনি যদি চান যা আপনার বিদ্যমান সীমাবদ্ধতার দ্বারা প্রস্থ এবং উচ্চতা বোঝায় তবে উত্তর হ'ল সীমাবদ্ধতাগুলি ম্যানুয়ালি পর্যবেক্ষণ করা উচিত নয়, কারণ এটির ব্যাখ্যা করার জন্য আপনাকে অটো লেআউট সিস্টেমের সম্পূর্ণ সীমাবদ্ধতা-সমাধানের যুক্তি পুনরায় প্রয়োগ করতে হবে would সীমাবদ্ধতার। পরিবর্তে, আপনাকে যা করা উচিত তা হ'ল অটো লেআউটটিকে সেই লেআউটটি আপডেট করতে বলুন , যাতে এটি সীমাবদ্ধতাগুলি সমাধান করে এবং সঠিক সমাধান সহ ভিউ.বাউন্ডের মান আপডেট করে এবং তারপরে আপনি ভিউবাউন্ডগুলি পরিদর্শন করেন।
আপনি কীভাবে অটো লেআউটটিকে লেআউটটি আপডেট করতে বলবেন? [view setNeedsLayout]
আপনি রান লুপের পরবর্তী সময়ে লেআউটটি আপডেট করতে অটো লেআউট চাইলে কল করুন ।
তবে আপনি যদি এটির সাথে সাথে লেআউটটি আপডেট করতে চান তবে আপনি আপনার বর্তমান ফাংশনটির মধ্যে পরে নতুন সীমানা মানটি অবিলম্বে অ্যাক্সেস করতে পারেন , বা রান লুপটি পরিবর্তনের আগে অন্য সময়ে, তারপরে আপনাকে কল করতে হবে [view setNeedsLayout]
এবং [view layoutIfNeeded]
।
আপনি একটি দ্বিতীয় প্রশ্ন জিজ্ঞাসা করেছিলেন: "যদি আমার কাছে সরাসরি উল্লেখ না হয় তবে আমি কীভাবে উচ্চতা / প্রস্থের সীমাবদ্ধতা পরিবর্তন করতে পারি?"।
আপনি যদি আইবিতে সীমাবদ্ধতা তৈরি করেন, সর্বোত্তম সমাধান হ'ল আপনার ভিউ কন্ট্রোলারে বা আপনার দৃষ্টিতে একটি আইবিআউটলেট তৈরি করা যাতে আপনার এটির প্রত্যক্ষ রেফারেন্স থাকে। আপনি যদি কোডটিতে সীমাবদ্ধতা তৈরি করেন, তবে আপনি যখন এটি তৈরি করেছিলেন তখন আপনার অভ্যন্তরীণ দুর্বল সম্পত্তিটির কোনও রেফারেন্স রাখা উচিত। অন্য কেউ যদি এই সীমাবদ্ধতা তৈরি করে থাকে, তবে আপনাকে ভিউ-র নিয়ন্ত্রণের সম্পত্তি এবং সম্ভবত সম্পূর্ণ ভিউয়ের স্তরবিন্যাস, এবং গুরুত্বপূর্ণ এনএসলায়আউটকন্ট্রেন্টকে খুঁজে পাওয়া যুক্তি প্রয়োগ করে পরীক্ষা করে এটি সন্ধান করতে হবে। এটি সম্ভবত যাওয়ার ভুল উপায়, যেহেতু কার্যকরভাবে কোনও নির্দিষ্ট বাধা সীমানা আকার নির্ধারণ করতে আপনাকে কার্যকরভাবে কার্যকর করা প্রয়োজন, যখন এই প্রশ্নের সহজ উত্তর হওয়ার গ্যারান্টি নেই। চূড়ান্ত সীমা মান একাধিক সীমাবদ্ধতার খুব জটিল সিস্টেমের সমাধান হতে পারে,