এই সমস্যাটি নিয়ে আমি আমার মাথা আঁচড়ালাম। এটি ট্যাববার কীভাবে আরম্ভ করা হয় এবং শ্রেণিবিন্যাস দেখতে যুক্ত করা হয় তার সাথে এটি জড়িত বলে মনে হচ্ছে। আমি কল করা invalidateIntrinsicContentSize
, ফ্রেম সেট করা এবং bottomInsets
একটি ইউআইটিববার সাবক্লাসের মতো সমাধানেরও উপরে চেষ্টা করেছি । তারা যদিও অস্থায়ীভাবে কাজ করছে বলে মনে হয় এবং তারা কিছু অন্যান্য দৃশ্যের বিরতি বা কিছু অস্পষ্ট লেআউট সমস্যা সৃষ্টি করে ট্যাব বারটিকে পুনরায় চাপিয়ে দেয়। আমি যখন সমস্যাটি ডিবাগ করছিলাম তখন আমি ইউআইটিববার এবং কেন্দ্র ওয়াই আঙ্করকে উচ্চতার সীমাবদ্ধতাগুলি নির্দিষ্ট করার চেষ্টা করেছি, তবে উভয়ই সমস্যাটি স্থির করেনি। আমি ডিবাগারটি দেখে বুঝতে পেরেছিলাম যে সমস্যাটি পুনরুত্থানের আগে এবং তার পরে ট্যাববারের উচ্চতা সঠিক ছিল, যা আমাকে ভাবতে পরিচালিত করেছিল যে সমস্যাটি সংক্ষিপ্তসারগুলিতে ছিল। আমি অন্য কোনও পরিস্থিতিতে পুনরায় চাপ না দিয়ে এই সমস্যাটি সফলভাবে সমাধান করতে নীচের কোডটি ব্যবহার করেছি।
- (void) viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
if (DEVICE_IS_IPHONEX())
{
[coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> _Nonnull context) {
for (UIView *view in self.tabBar.subviews)
{
if ([NSStringFromClass(view.class) containsString:@"UITabBarButton"])
{
if (@available (iOS 11, *))
{
[view.bottomAnchor constraintEqualToAnchor:view.superview.safeAreaLayoutGuide.bottomAnchor].active = YES;
}
}
}
} completion:^(id<UIViewControllerTransitionCoordinatorContext> _Nonnull context) {
[self.tabBar layoutSubviews];
}];
}
}
অনুমান: আমি এটি কেবল আইফোন এক্স এর জন্য করছি, কারণ এই মুহুর্তে এটি অন্য কোনও ডিভাইসে পুনরুত্পাদন বলে মনে হচ্ছে না। ভবিষ্যতে আইওএস রিলিজে অ্যাপল ইউআইটিববার্টন ক্লাসের নাম পরিবর্তন করবে না এই ধারণার উপর ভিত্তি করে। আমরা এটি ইউআইটিববারবার বাটনটিতে তখনই করছি যখন এর অর্থ যদি অ্যাপল ইউআইটিববারে আরও অভ্যন্তরীণ মতামত যুক্ত করে তবে তার জন্য সামঞ্জস্য করার জন্য আমাদের কোডটি সংশোধন করতে হবে।
দয়া করে লেমমে জানুন যে এটি কাজ করে কিনা, পরামর্শ এবং উন্নতির জন্য উন্মুক্ত হবে!
এটির জন্য একটি দ্রুত সমতুল্য তৈরি করা সহজ হওয়া উচিত।