দয়া করে মনে রাখবেন যে এই প্রশ্নটি ২০০৮ সালের এবং এখন কেবল historicতিহাসিক আগ্রহের।
ডিভাইসের অবস্থান নির্বিশেষে কোনও আইফোন অ্যাপ্লিকেশন তৈরির সর্বোত্তম উপায় যা শুরু থেকেই ল্যান্ডস্কেপ মোডে চলে?
প্রোগ্রামগতভাবে এবং ইন্টারফেস বিল্ডার ব্যবহার উভয়ই।
দয়া করে মনে রাখবেন যে এই প্রশ্নটি ২০০৮ সালের এবং এখন কেবল historicতিহাসিক আগ্রহের।
ডিভাইসের অবস্থান নির্বিশেষে কোনও আইফোন অ্যাপ্লিকেশন তৈরির সর্বোত্তম উপায় যা শুরু থেকেই ল্যান্ডস্কেপ মোডে চলে?
প্রোগ্রামগতভাবে এবং ইন্টারফেস বিল্ডার ব্যবহার উভয়ই।
উত্তর:
দয়া করে মনে রাখবেন যে এই উত্তরটি এখন বিশাল আকারের / পুরানো
এই উত্তরটি কেবল একটি .তিহাসিক কৌতূহল ।
উত্তেজনাপূর্ণ খবর! নীচে অ্যান্ড্রু দ্বারা আবিষ্কার করা হিসাবে, এই সমস্যাটি অ্যাপল দ্বারা 4.0++ এ স্থির করা হয়েছে।
এটি প্রদর্শিত হবে যে প্রতিটি দৃশ্যে দৃশ্যের আকারকে জোর করা দরকার এখন আর প্রয়োজন নেই এবং আড়াআড়িটির নির্দিষ্ট গুরুতর সমস্যা "কেবলমাত্র প্রথমবারের কাজ করা" সমাধান করা হয়েছে।
এপ্রিল ২০১১ পর্যন্ত, 4.0 এর নীচে কিছু পরীক্ষা করা বা এমনকি তৈরি করা সম্ভব নয়, সুতরাং প্রশ্নটি নিখুঁতভাবে একটি historicতিহাসিক কৌতূহল। এটি এতদিন ধরে বিকাশকারীদের কতটা সমস্যায় ফেলেছিল তা অবিশ্বাস্য!
এখানে আসল আলোচনা এবং সমাধান। এটি এখন একেবারেই অপ্রাসঙ্গিক, কারণ এই সিস্টেমগুলি এমনকি অপারেশনযোগ্যও নয়।
এই কাজটি সম্পূর্ণরূপে করা অত্যন্ত স্বাচ্ছন্দ্য - কমপক্ষে তিনটি সমস্যা / বাগ রয়েছে।
এটি চেষ্টা করুন .. ইন্টারফেস বিল্ডার ল্যান্ডস্কেপ ডিজাইন
বিশেষত এটি যেখানে উল্লেখ করেছে সেখানে নোট করুন এবং "আপনার সর্বত্র সর্বত্র যথাযথউডিটোরোটোটো ইন্টারফেস ওরিয়েন্টেশন ব্যবহার করা দরকার" এর অর্থ সর্বত্র, আপনার সমস্ত পর্দার দৃশ্য।
আশা করি এটি এই দুঃস্বপ্নে সহায়তা করবে!
এখানে অ্যাডিশনাল সুপরিচিত সমস্যাটির একটি গুরুত্বপূর্ণ অনুস্মারক: আপনি যদি আরও একটি দর্শন (সমস্ত ল্যান্ডস্কেপ) এর মধ্যে অদলবদল করার চেষ্টা করছেন , এটি সাধারণভাবে কাজ করে না । এটি মনে রাখা অপরিহার্য বা আপনি সমস্যার দিনগুলি নষ্ট করবেন। এটি আক্ষরিক অর্থেই সম্ভব নয়। এটি আইওএস প্ল্যাটফর্মের সবচেয়ে বড় উন্মুক্ত, পরিচিত, বাগ g আক্ষরিক অর্থে কোনও উপায় নেই যে হার্ডওয়ারটি আপনার দ্বিতীয় ভিউটি লোড করে, আড়াআড়ি হয়। বিরক্তিকর তবে সহজ কাজটি এবং আপনার যা করা উচিত তা হ'ল একটি তুচ্ছ মাস্টার ইউআইভিউউকন্ট্রোলার যা সেখানে বসে ছাড়া আর কিছুই করে না এবং আপনাকে আপনার মতামতের মধ্যে অদলবদল করতে দেয়।
অন্য কথায়, আইওএসে একটি প্রধান জানা বাগের কারণে:
[window addSubview:happyThing.view];
[window makeKeyAndVisible];
আপনি এটি একবারেই করতে পারেন । পরবর্তীতে, আপনি যদি হ্যাপিথিং.ভিউটি অপসারণের চেষ্টা করেন এবং এর পরিবর্তে সেখানে নতুন থিং.ভিউ রাখেন, এটি কাজ করে না - এবং এটি। মেশিনটি কখনও কখনও দৃশ্যের আড়াআড়িটিকে ঘোরান না। কোনও ট্রিক ফিক্স নেই, এমনকি অ্যাপল এটিকে কাজ করতে পারে না। আপনার অবশ্যই কার্যকর হওয়া উচিত এমন সামগ্রিক ইউআইভিউউকন্ট্রোলার রয়েছে যা কেবল সেখানে বসে আপনার বিভিন্ন মতামত ধরে রাখে (হ্যাপিথিং, নিউ থিং, ইত্যাদি)। আশা করি এটা সাহায্য করবে!
অ্যাপল দেব সাইট থেকে:
ল্যান্ডস্কেপ মোডে আপনার অ্যাপ্লিকেশনটি শুরু করতে যাতে স্থিতি দণ্ডটি তত্ক্ষণাত যথাযথ অবস্থানে থাকে, তালিকা 2-তে দেখানো হয়েছে, যথাযথ মান (UIInterfaceOrientationLandPressRight বা UIInterfaceOrientationLandPressLeft) সহ UIInterfaceOrientation কী যুক্ত করতে আপনার তথ্য.প্লেস্ট ফাইলটি সম্পাদনা করুন।
তালিকা 2: ল্যান্ডস্কেপ মোডে আপনার অ্যাপ্লিকেশন শুরু করা
<key>UIInterfaceOrientation</key> <string>UIInterfaceOrientationLandscapeRight</string>
সমস্ত পোস্ট থেকে সংক্ষিপ্তসার এবং সংহতকরণ, এটি নিজে পরীক্ষা করার পরে; নীচে 4.x, 5.x এর জন্য আপডেটটি দেখুন।
৩.২ হিসাবে আপনি কোড থেকে চলমান অ্যাপ্লিকেশনটির ওরিয়েন্টেশন পরিবর্তন করতে পারবেন না।
তবে আপনি একটি স্থির অরিয়েন্টেশন দিয়ে একটি অ্যাপ্লিকেশন শুরু করতে পারেন, যদিও এটি করা সহজ নয়।
এই রেসিপি দিয়ে চেষ্টা করুন:
UISupportedInterfaceOrientations
মধ্যে Info.plist
ফাইলshouldAutorotateToInterfaceOrientation:
পদ্ধতিটি সেট আপ করে (অবশ্যই আপনি প্লাস্টে সংজ্ঞায়িত একই মানটি ফেরত দিতে)সমস্ত দৃশ্যে কন্ট্রোলারগুলির সাথে একটি ব্যাকগ্রাউন্ড ভিউ সেট করে
self.view.frame = CGRectMake(0, 0, 480, 320)
মধ্যে viewDidLoad
পদ্ধতি।
আপডেট (আইওএস 4.x, 5.x) : অ্যাপল আইওএস অ্যাপ্লিকেশন প্রোগ্রামিং গাইডের "অ্যাডভান্সড অ্যাপ ট্রিকস" অধ্যায়টিতে "ল্যান্ডস্কেপ মোডে লঞ্চিং" অনুচ্ছেদ রয়েছে।
তথ্যসূত্র:
প্রথমে আমি তথ্য.প্লেস্টে সেট করি
<key>UIInterfaceOrientation</key>
<string>UIInterfaceOrientationLandscapeRight</string>
তারপরে আমি এই কোডটি অ্যাপ্লিকেশনটিতে রেখেছিডফিনিশলঞ্চিং:
CGAffineTransform rotate = CGAffineTransformMakeRotation(1.57079633);
[window setTransform:rotate];
CGRect contentRect = CGRectMake(0, 0, 480, 320);
window.bounds = contentRect;
[window setCenter:CGPointMake(160.0f, 240.0f)];
এইভাবে আমি ল্যান্ডস্কেপ মোডে ইন্টারফেস বিল্ডারে ভিউটিতে কাজ করতে পারি।
ssb এর এবং মাইকেল চালকের উত্তরটি সঠিক বলে মনে হচ্ছে তবে এটি যদি আপনার পক্ষে কাজ করে না, তবে এই বিকল্পটি ব্যবহার করে দেখুন:
- (void)applicationDidFinishLaunchingUIApplication *)application {
application.statusBarOrientation = UIInterfaceOrientationLandscapeRight;
}
বা এই এক:
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];
বা এই এক:
[application setStatusBarOrientation: UIInterfaceOrientationLandscapeRight animated:NO];
আপনাকে window makeKeyAndVisible;
প্রথমে কল করতেও হতে পারে ।
কয়েকটি লিঙ্ক: ল্যান্ডস্কেপ মোডে উন্নয়নশীল , আইফোন এসডিকে: কীভাবে কেবল ল্যান্ডস্কেপ মোডকে জোর করবেন?
@ রবার্ট: দয়া করে আইফোন এসডিকে, এনডিএ এবং স্ট্যাক ওভারফ্লো দেখুন ।
আমি অবাক হয়েছি এখনও কেউ এই উত্তরটি নিয়ে আসে নি:
আমার সমস্ত পরীক্ষায় যখন কোনও মডেল ভিউ কন্ট্রোলারকে বরখাস্ত করা হয় যখন অভিভাবক দর্শনের নিয়ন্ত্রকের পছন্দসই ওরিয়েন্টেশন সেট করা shouldAutorotateToInterfaceOrientation
থাকে সম্মানিত হয় এমনকি কোনও ইউআইএনএভিগেশন কন্ট্রোলারের অংশও রয়েছে। সুতরাং এর সমাধানটি সহজ:
একটি পটভূমির জন্য একটি ইউআইআইমেজভিউ দিয়ে একটি ডামি ইউআইভিউউকন্ট্রোলার তৈরি করুন। আপনার অ্যাপ্লিকেশনটি স্টার্টআপে ব্যবহার করে এমন চিত্রটি ডিফল্ট.png এ সেট করুন।
viewWillAppear
আপনার রুট ভিউ কন্ট্রোলারে যখন ডাকা হয় তখন অ্যানিমেশন ছাড়াই ডামি ভিউ কন্ট্রোলারটি উপস্থাপন করুন।
viewDidAppear
আপনার ডামি ভিউ কন্ট্রোলারে যখন ডাকা হয়, তখন একটি দুর্দান্ত ক্রস দ্রবীভূত অ্যানিমেশন দিয়ে ভিউ কন্ট্রোলারকে বরখাস্ত করুন।
কেবল এই কাজটিই করে না, তবে এটি দুর্দান্ত দেখাচ্ছে! বিটিডাব্লু, কেবলমাত্র স্পষ্টতার জন্য আমি রুট ভিউ কন্ট্রোলারের viewWillAppear
মতো এটি করি:
- (void)viewWillAppear:(BOOL)animated
{
if ( dummy != nil ) {
[dummy setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentModalViewController:dummy animated:NO];
[dummy release];
dummy = nil;
}
...
}
সর্বশেষতম আইফোন ওএস প্রোগ্রামিং গাইডটিতে স্যাম্পল কোড সহ একটি সম্পূর্ণ বিভাগ রয়েছে। আমি নিশ্চিত এটি সাম্প্রতিক সংযোজন, তাই সম্ভবত আপনি এটি মিস করেছেন। এটি আপনাকে যে সমস্ত শর্ত মেনে চলতে হবে তা ব্যাখ্যা করে; মূলত ...
"ল্যান্ডস্কেপ মোডে চালু করা", পৃষ্ঠা 102 এর সন্ধান করুন।
এই উত্তরটি দেখুন: কেবলমাত্র আইফোন বা আইপ্যাডের জন্য ল্যান্ডস্কেপ মোড
আপনি যদি মিশ্র মোডগুলি ব্যবহার করেন তবে আপনি ভাল হতে পারেন
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];