UIInterfaceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation)ওরিয়েন্টেশন নির্ধারণ করতে এবং তারপরে সেই মাত্রাটি ব্যবহার করার মতো আপনি কিছু ব্যবহার করতে পারেন ।
যাইহোক, ইউআইভিউকন্ট্রোলারের মতো ওরিয়েন্টেশন পরিবর্তনের সময়
- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
duration:(NSTimeInterval)duration
সজ্জাতে পাস ব্যবহার করুন toInterfaceOrientationযেহেতু UIApplication এর statusBarOrientation এখনও পুরানো অভিযোজন নির্দেশ করবে যেমন এখনো পরিবর্তন হয়নি (যেহেতু আপনি একটি ভিতরে করছি willইভেন্ট হ্যান্ডলার)।
সারসংক্ষেপ
এর সাথে সম্পর্কিত বেশ কয়েকটি পোস্ট রয়েছে তবে এগুলির প্রত্যেকটিরই মনে হয় যে আপনাকে করতে হবে:
[[UIScreen mainScreen] bounds]মাত্রা পেতে তাকান ,
- আপনি কোন দিকে আছেন সেগুলি পরীক্ষা করুন এবং
- স্ট্যাটাস বারের উচ্চতার জন্য অ্যাকাউন্ট (যদি দেখানো হয়)
লিঙ্কগুলি
কার্য কোড
আমি সাধারণত এদিকে যাই না, তবে আপনি আমার আগ্রহ প্রকাশ করেছেন। নিম্নলিখিত কোডটি কৌশলটি করা উচিত। আমি ইউআইএপ্লিকেশন উপর একটি বিভাগ লিখেছি। আমি প্রদত্ত অভিযোজনে বর্তমানের আকার বা আকার পাওয়ার জন্য ক্লাসের পদ্ধতিগুলি যুক্ত করেছি, যা আপনি ইউআইভিউউকন্ট্রোলারে কল করবেন willRotateToInterfaceOrientation:duration:।
@interface UIApplication (AppDimensions)
+(CGSize) currentSize;
+(CGSize) sizeInOrientation:(UIInterfaceOrientation)orientation;
@end
@implementation UIApplication (AppDimensions)
+(CGSize) currentSize
{
return [UIApplication sizeInOrientation:[UIApplication sharedApplication].statusBarOrientation];
}
+(CGSize) sizeInOrientation:(UIInterfaceOrientation)orientation
{
CGSize size = [UIScreen mainScreen].bounds.size;
UIApplication *application = [UIApplication sharedApplication];
if (UIInterfaceOrientationIsLandscape(orientation))
{
size = CGSizeMake(size.height, size.width);
}
if (application.statusBarHidden == NO)
{
size.height -= MIN(application.statusBarFrame.size.width, application.statusBarFrame.size.height);
}
return size;
}
@end
কোড সহজ কল ব্যবহার করতে [UIApplication currentSize]। এছাড়াও, আমি উপরের কোডটি চালিয়েছি, তাই আমি জানি এটি কাজ করে এবং সমস্ত দিকনির্দেশে সঠিক প্রতিক্রিয়াগুলি রিপোর্ট করে। নোট করুন যে আমি স্ট্যাটাস বারে ফ্যাক্টর করি। মজার বিষয় হল আমাকে স্ট্যাটাস বারের উচ্চতা এবং প্রস্থের এমআইএন বিয়োগ করতে হয়েছিল।
আশাকরি এটা সাহায্য করবে. : ডি
অন্যান্য চিন্তা
আপনি ইউআইওয়াইন্ডোর rootViewControllerসম্পত্তি দেখে মাত্রা অর্জন করতে পারেন । আমি অতীতে এটি দেখেছি এবং এটি একইভাবে প্রতিকৃতি এবং ল্যান্ডস্কেপ উভয় ক্ষেত্রে একই ঘূর্ণন রূপান্তরিত হওয়ার রিপোর্ট ব্যতীত রিপোর্ট করেছে:
(জিডিবি) পো [[[[ইউআইএ আবেদনটি শেয়ার করেছেন প্রয়োগ] কী উইন্ডো] রুটভিউ নিয়ন্ত্রণকারী] দেখুন]
<ইউআইআইআলআউটকন্টেনারভিউ: 0xf7296f0; ফ্রেম = (0 0; 320 480); রূপান্তর = [0, -1, 1, 0, 0, 0]; autoresize = ডাব্লু + এইচ; স্তর = <ক্যালায়ার: 0xf729b80 >>
(জিডিবি) পো [[[[ইউআইএ আবেদনটি শেয়ার করেছেন প্রয়োগ] কী উইন্ডো] রুটভিউ নিয়ন্ত্রণকারী] দেখুন]
<ইউআইআইআলআউটকন্টেনারভিউ: 0xf7296f0; ফ্রেম = (0 0; 320 480); autoresize = ডাব্লু + এইচ; স্তর = <ক্যালায়ার: 0xf729b80 >>
আপনার অ্যাপ্লিকেশনটি কীভাবে কাজ করে তা নিশ্চিত নয় তবে আপনি যদি কোনও ধরণের নেভিগেশন কন্ট্রোলার ব্যবহার না করেন তবে আপনার মূল দৃশ্যের অধীনে প্যারেন্টের সর্বোচ্চ উচ্চতা / প্রস্থ এবং পিতামাতার সাথে বৃদ্ধি / সঙ্কুচিত থাকতে পারে U তাহলে আপনি করতে পারেন:[[[[[[[UIApplication sharedApplication] keyWindow] rootViewController] view] subviews] objectAtIndex:0] frame]। এটি এক লাইনে বেশ তীব্র দেখাচ্ছে, তবে আপনি ধারণা পাবেন get
তবে ... সংক্ষিপ্তসার অনুসারে উপরের 3 টি পদক্ষেপটি করা আরও ভাল হবে। UIWindows এর সাথে জগাখিচুড়ি শুরু করুন এবং আপনি অদ্ভুত জিনিসগুলি খুঁজে পাবেন, যেমন একটি ইউআইএলার্টভিউ দেখানোর ফলে ইউআইএপ্লিকেশনটির কীউইন্ডোটি নতুন ইউআইআই উইন্ডোতে নির্দেশ করবে যা ইউআইএলআর্টভিউ তৈরি করেছে। কে জানত? আমি কী-উইন্ডোতে নির্ভর করে একটি বাগ খুঁজে পেয়েছিলাম এবং আবিষ্কার করেছিলাম যে এটির মতো পরিবর্তন হয়েছে!