19 শে সেপ্টেম্বর 2013 এ আপডেট:
যোগ করে নির্দিষ্ট স্কেলিং বাগগুলি
self.window.bounds = CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height);
NSNotificationCenter
বিবৃতিতে সংশোধন করা টাইপস
12 সেপ্টেম্বর 2013 এ আপডেট:
সংশোধন করা UIViewControllerBasedStatusBarAppearance
হয়েছেNO
স্ক্রিন রোটেশন সহ অ্যাপ্লিকেশনগুলির জন্য একটি সমাধান যুক্ত করেছে
স্ট্যাটাস বারের পটভূমির রঙ পরিবর্তন করতে একটি দৃষ্টিভঙ্গি যুক্ত করেছে।
স্পষ্টতই, iOS7 স্থিতি দণ্ডটি iOS6 এ কীভাবে কাজ করে তা ফিরিয়ে আনার কোনও উপায় নেই।
তবে আমরা সর্বদা কিছু কোড লিখতে পারি এবং স্ট্যাটাস বারটি আইওএস 6-এর মতো করে দিতে পারি, এবং এটিই আমি নিয়ে আসা সবচেয়ে স্বল্পতম উপায়:
সেট UIViewControllerBasedStatusBarAppearance
থেকে NO
এ info.plist
(দেখুন কন্ট্রোলার আমরা UIApplicationstatusBarStyle পদ্ধতি ব্যবহার করে স্ট্যাটাস বার শৈলী সেট করতে পারেন যাতে স্ট্যাটাস বার শৈলী সমন্বয় থাকার অনির্বাচন করতে।)
অ্যাপডেলিগেটে application:didFinishLaunchingWithOptions
কল করুন
if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) {
[application setStatusBarStyle:UIStatusBarStyleLightContent];
self.window.clipsToBounds =YES;
self.window.frame = CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);
//Added on 19th Sep 2013
self.window.bounds = CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height);
}
return YES;
যাতে:
এটি আইওএস 7 কিনা তা পরীক্ষা করে দেখুন।
UIStatusBarStyleDefault এর বিপরীতে স্ট্যাটাস বারের সামগ্রীটি সাদা হতে সেট করুন।
এমন দৃষ্টিভঙ্গি এড়িয়ে চলুন যার ফ্রেমগুলি দৃশ্যমান সীমা ছাড়িয়ে প্রসারিত হতে পারে (উপরে থেকে মূল দৃশ্যে অ্যানিমেট করা দর্শনগুলির জন্য)।
অ্যাপ্লিকেশনটির উইন্ডো ফ্রেম স্থানান্তরিত ও আকার পরিবর্তন করে স্থিতি দণ্ডটি আইওএস 6 এ কেমন হয় তার মতো স্থান গ্রহণ করে এমন মায়া তৈরি করুন।
স্ক্রিন রোটেশন সহ অ্যাপ্লিকেশনগুলির জন্য,
যোগ করে ওরিয়েন্টেশন পরিবর্তনগুলি সনাক্ত করতে এনএসএনটিফিকেশন সেন্টার ব্যবহার করুন
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationDidChangeStatusBarOrientation:)
name:UIApplicationDidChangeStatusBarOrientationNotification
object:nil];
মধ্যে if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1)
এবং AppDelegate একটি নতুন পদ্ধতি তৈরি করুন:
- (void)applicationDidChangeStatusBarOrientation:(NSNotification *)notification
{
int a = [[notification.userInfo objectForKey: UIApplicationStatusBarOrientationUserInfoKey] intValue];
int w = [[UIScreen mainScreen] bounds].size.width;
int h = [[UIScreen mainScreen] bounds].size.height;
switch(a){
case 4:
self.window.frame = CGRectMake(0,20,w,h);
break;
case 3:
self.window.frame = CGRectMake(-20,0,w-20,h+20);
break;
case 2:
self.window.frame = CGRectMake(0,-20,w,h);
break;
case 1:
self.window.frame = CGRectMake(20,0,w-20,h+20);
}
}
যাতে স্থিতিবিন্যাস পরিবর্তন হওয়ার সাথে সাথে এটি অ্যাপের স্ক্রিন ওরিয়েন্টেশন (প্রতিকৃতি, উপরিভাগ ডাউন, ল্যান্ডস্কেপ বাম, বা ল্যান্ডস্কেপ রাইট) সনাক্ত করতে এবং আইওএস 6 স্ট্যাটাস বারের ইলিউশন তৈরি করতে যথাক্রমে অ্যাপের উইন্ডো ফ্রেম পরিবর্তন করে।
আপনার স্ট্যাটাস বারের পটভূমির রঙ পরিবর্তন করতে:
যোগ
@property (retain, nonatomic) UIWindow *background;
মধ্যে AppDelegate.h
করতে background
আপনার বর্গ একটি সম্পত্তি এবং এটা deallocating থেকে এআরসি প্রতিরোধ। (আপনি যদি আরসি ব্যবহার না করেন তবে আপনাকে এটি করতে হবে না))
এর পরে আপনার কেবলমাত্র ইউআই উইন্ডো তৈরি করতে হবে if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1)
:
background = [[UIWindow alloc] initWithFrame: CGRectMake(0, 0, self.window.frame.size.width, 20)];
background.backgroundColor =[UIColor redColor];
[background setHidden:NO];
@synthesize background;
পরে ভুলবেন না @implementation AppDelegate
!