কোনও আইওএস অ্যাপ্লিকেশনটিতে অন্য ইউআইওয়াইন্ডো যুক্ত করার সুবিধা, সমস্যা, উদাহরণ?


92

সম্প্রতি আমি এই বিষয়টি নিয়ে ভাবছিলাম যে কোনও আইওএস অ্যাপ্লিকেশনটিতে কেবল একটি রয়েছে UIWindow। এটি অন্যটি তৈরি UIWindowকরে স্ক্রিনে রাখার বিষয়টি মনে হয় না ।

আমার প্রশ্নটি এক ধরণের অস্পষ্ট, তবে আমি এতে আগ্রহী:

  • আমি সম্ভবত এমন একটি সেকেন্ডের সাথে কী অর্জন করতে পারি UIWindowযা অন্য উপায়ে করা যায় না?
  • একাধিক UIWindowউদাহরণ ব্যবহার করার সময় কী ভুল হতে পারে ?
  • আমি দেখেছি যে লোকেরা UIWindowআইফোনে পপওভার মত প্রদর্শন করতে 2 য় ব্যবহার করে। এটি কি এটি করার একটি ভাল উপায়? কেন? কেন না?
  • এটির অন্যান্য উদাহরণ রয়েছে যেখানে এটি অন্যরকমটি বোঝার জন্য পুরোপুরি বোঝা যাচ্ছে UIWindow?

এমন নয় যে আমি কিছু মিস করছি। আমি অন্য UIWindowউদাহরণ তৈরি করার প্রয়োজন অনুভব করি নি তবে সম্ভবত এটি আশ্চর্যজনক জিনিসগুলি করার অনুমতি দেবে যা আমি অবগত নই! :-)

আমি আশা করছি যে এটি আমার এই সমস্যা সমাধানে সহায়তা করতে পারে: বর্তমানে যা প্রদর্শিত হবে তার উপরে আমার একটি "কভার ভিউ" যুক্ত করা দরকার। যদি ইতিমধ্যে এক বা একাধিক মডেল কন্ট্রোলার উপস্থাপন করা থাকে তবে এটিও কাজ করা উচিত। আমি যদি UIViewরুট কন্ট্রোলারের দৃশ্যে একটি যুক্ত করি তবে মডেল কন্ট্রোলাররা উপরে বসে থাকে, সুতরাং পপওভার নিয়ন্ত্রকরাও তা করেন। আমি যদি কভার ভিউটি মোডালি উপস্থাপন করি এবং ইতিমধ্যে একটি মডেল কন্ট্রোলার উপস্থিত রয়েছে, তবে পর্দার কেবলমাত্র অংশটি coveredাকা থাকবে।


আইওএস অ্যাপ্লিকেশনগুলিতে একাধিক ইউআই উইন্ডো ব্যবহার করে shaune.com.au/using-m Multipleple
uiwindows-

উত্তর:


27

A UIWindowসিস্টেম কীবোর্ডের মতো অন্যান্য UI উপাদানগুলির উপরে ভাসতে পারে।

আপনার শেষ অনুচ্ছেদে সম্বোধন করতে: একটি তৈরি করুন UIWindow আপনার মূল উইন্ডোর মতো একই ফ্রেম দিয়ে । এর windowLevelসম্পত্তি সেট করুন UIWindowLevelStatusBar। এর hiddenসম্পত্তি সেট করুন NO


ঠিক আছে, ঠিক আছে। ধন্যবাদ আমি জানি সেটা. আমার প্রশ্নগুলি সম্পর্কে আপনি কিছুটা বিশদ পেতে পারেন? আপনি কী জানেন যে কীভাবে MakeKeyAndVisible দ্বারা যুক্ত হওয়া সেকেন্ডের UIWindow এর RID পাবেন?
ক্রুমেলুর

দ্বিতীয় UIWindow এর লুকানো সম্পত্তিটি হ্যাঁ সেট করুন।
রব মায়ফ

ধন্যবাদ এবং আমি কীটি এবং দৃশ্যমান করে উইন্ডোটি দেখাব? এবং আমি এটিকে অন্য উইন্ডোটি দৃশ্যমান করে এবং অন্যটিটি নিষ্পত্তি করে লুকিয়ে রেখেছি? আমি কীভাবে কোনও ইউআইআই উইন্ডোটিকে ইউআইএএকশনশিটের মতো করে প্রাণবন্ত করতে পারি?
ক্রুমেলুর

এই বিষয়ে সতর্কতা অবলম্বন করুন। যদি! = UIWindowLevelNormal এ থাকে তবে কীবোর্ডটি <iOS7 এ নীচে প্রদর্শিত হবে।
শান

108

রবের জবাব দিয়ে শুরু করে আমি কিছুটা খেললাম এবং অন্যদের এই বিষয়টিতে তথ্য পাওয়ার চেষ্টা করার জন্য কিছু নোট লিখতে চাই:

  • অন্যটি যুক্ত করা মোটেও সমস্যা নয় UIWindow। শুধু একটি তৈরি করুন এবং makeKeyAndVisible। সম্পন্ন.
  • অন্য উইন্ডোটি দৃশ্যমান করে এটিকে সরিয়ে ফেলুন, তারপরে আপনার আর প্রয়োজন নেই এমন একটিটি ছেড়ে দিন।
  • "কী" উইন্ডোটি সমস্ত কীবোর্ড ইনপুট গ্রহণ করে।
  • UIWindow এমনকি সবকিছু, এমনকি মডেল, পপওভার, ইত্যাদি কভার করে
  • UIWindowসর্বদা স্পষ্টভাবে প্রতিকৃতি হয়। এটি কোনও ঘোরাঘুরি করে না। আপনাকে নতুন উইন্ডোর রুট কন্ট্রোলার হিসাবে একটি নিয়ামক যুক্ত করতে হবে এবং সেই হ্যান্ডেলটি ঘোরানো হবে। (ঠিক মূল উইন্ডোর মতো)
  • উইন্ডোটির স্তরটি নির্ধারণ করে যে এটি কীভাবে "উচ্চ" প্রদর্শিত হবে। এটি UIWindowLevelStatusBarসমস্ত কিছু coverেকে রাখার জন্য এটি সেট করুন । এর hiddenসম্পত্তিটি NO এ সেট করুন ।
  • 2 য় UIWindowস্ক্রিনে এমন দর্শন আনতে ব্যবহার করা যেতে পারে যা সমস্ত কিছুর শীর্ষে ভাসমান। একটি এটিকে এম্বেড করার জন্য একটি ডামি নিয়ন্ত্রক তৈরি না করে UIPopoverController
  • এটি আইফোনটিতে বিশেষভাবে কার্যকর হতে পারে যেখানে কোনও পপওভার নিয়ামক নেই তবে যেখানে আপনি এটির মতো কিছু অনুকরণ করতে চাইতে পারেন।
  • এবং হ্যাঁ, এটি অবশ্যই আমার সমস্যার সমাধান করেছে: যদি অ্যাপ্লিকেশনটি অ্যাক্টিভেশন থেকে পদত্যাগ করে, আইওএসকে আপনার অ্যাপ্লিকেশনের বর্তমান সামগ্রীর স্ক্রিনশট নেওয়া থেকে আটকাতে বর্তমানে যা কিছু প্রদর্শিত হবে তার উপরে একটি কভার উইন্ডো যুক্ত করুন।

আপনার উত্তরের জন্য না হলে আমার আর একটি ইউআইওয়াইন্ডো ব্যবহার করার সাহস হত না। এটি চূড়ান্তভাবে সহায়কও ছিল কারণ দ্বিতীয় ইউআইওয়াইন্ডো নিজে থেকে স্বয়ংক্রিয়করণ করবে না।
ড্যান আব্রামভ

4
খুব আলোকিত পোস্ট। তবে যদি আপনি এই উইন্ডোটিকে পদত্যাগ করেন এবং অন্তর্নিহিত উইন্ডো কীটি এবং দৃশ্যমান করে তোলেন এবং এই অন্তর্নিহিত উইন্ডোটির রুটভিউকন্ট্রোলার বর্তমানে একটি মডেল নিয়ামক উপস্থাপন করেছে তবে কি হবে? এটি কি মডেল ভিউ কন্ট্রোলারকে ফিরিয়ে উপস্থাপন করবে? আমাদের অ্যাপ্লিকেশনটিতে যা ঘটে তা হ'ল রুটভিউ কনট্রোলারটিকে মডেল হিসাবে উপস্থাপন করা হয় না ...
নাভা কারমন

পছন্দ করুন আমার সন্দেহ আছে. এটি হ'ল বলুন, সমস্ত বর্তমান দর্শনের শীর্ষে ২ য় ইউআইওয়াইন্ডো প্রদর্শিত হবে। যখন ব্যবহারকারী 1 ম ইউআই উইন্ডোতে রয়েছে এমন ভিউতে একটি বোতাম ক্লিক করে যা আরও একটি ভিউকন্ট্রোলার উপস্থাপন করছে। এই 2 য় UIWindow লুকানো হবে। কীভাবে এই ইউআইওয়াইন্ডোটি পুরো অ্যাপ্লিকেশন জুড়ে সর্বদা প্রদর্শিত হয়।
ইশ্বরমূর্তি কে

4
আমি কাস্টম স্টাইলযুক্ত সতর্কতা দর্শন এবং আইফোন পপওভার বাস্তবায়নের জন্য সর্বদা UIWindow ব্যবহার করি। এটি সর্বদা দৃশ্যের পূর্ণস্ক্রিন তৈরি করতে, একটি পূর্ণস্ক্রিন ভিউযুক্ত এবং অন্য "সামগ্রী" -র ভিতরে এম্বেড করার জন্য সহায়তা করে যাতে বাইরের দৃশ্য যে কোনও স্পর্শ ইভেন্টগুলিকে ধরতে পারে (এবং তাই আমি একটি সুন্দর ছায়া যুক্ত করতে এবং আমার অন্যান্য বিষয়বস্তুটি ম্লান করতে পারি ^^)
মার্টিন আলরিচ

4
এটি লক্ষ্য করা উচিত যে একটি দ্বিতীয় উইন্ডো কেবল দৃশ্যমান হওয়ার জন্য ধরে রাখা হয় না (নিয়মিত মতামতের বিপরীতে তাদের তত্ত্বাবধানে রাখা হয়)।
রিভেরা

0

ইউআই উইন্ডোকে আরও ভালভাবে বোঝার জন্য অ্যাপলের ডকুমেন্টেশনটি এখানে রয়েছে : https://developer.apple.com/library/archive/docamentation/WindowsViews/Concepual/WindowAndScreenGuide/WindowScreenRolesinapp/WindowScreenRolesinapp.html

ইউআই উইন্ডোর একাধিক উদাহরণ ব্যবহারের নির্দিষ্ট কারণ হ'ল অ্যাপটির স্ক্রিনটি যখন ভিডিও রেকর্ড করা দরকার। আপনি চূড়ান্ত রেকর্ড করা ভিডিওতে কিছু উপাদান (রেকর্ডিং বোতাম, রেকর্ডিংয়ের স্থিতি ইত্যাদি) অন্তর্ভুক্ত করতে না চাইতে পারেন, যাতে আপনি সেই উপাদানগুলিকে উপরে একটি পৃথক ইউআইওয়াইন্ডোতে রাখতে পারেন।

বস্তুত, যদি আপনি ReplayKit ব্যবহার করছেন, আপনি হবে আছে এই বাদ UI উপাদান জন্য পৃথক UIWindow ব্যবহার করুন। এখানে আরও তথ্য: https://medium.com/ar-tips-and-tricks/how-to-record-a-screen-capture-with-replaykit- whilst-hide-the-hud-element-bedcca8e31e

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.