উত্তর:
UIViewভাইবোনরা যাতে তাদের তত্ত্বাবধানে যুক্ত হয় সেই ক্রমে স্ট্যাক করা হয়। UIViewঅনুক্রমের পদ্ধতি এবং বৈশিষ্ট্য দেখতে অর্ডার পরিচালনা করতে আছে। ইউআইভিউ র মধ্যে:
@property(nonatomic,readonly) UIView *superview;
@property(nonatomic,readonly,copy) NSArray *subviews;
- (void)removeFromSuperview;
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;
- (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2;
- (void)addSubview:(UIView *)view;
- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview;
- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview;
- (void)bringSubviewToFront:(UIView *)view;
- (void)sendSubviewToBack:(UIView *)view;
ভাইবোনদের মতামতগুলি subviewsঅ্যারেতে আবার সামনে অর্ডার করা হয় । সুতরাং শীর্ষতম দৃশ্যটি হবে:
[parentView.subviews lastObject];
এবং নীচের দৃশ্যটি হবে:
[parentView.subviews objectAtIndex:0];
কোলিন ক্রেইনকেল যেমন বলেছিলেন, [parentView bringSubviewToFront:view]দৃষ্টিভঙ্গিটিকে শীর্ষে এনে দেবে, তবে কেবলমাত্র যদি দৃষ্টিভঙ্গি বংশোদ্ভূত সমস্ত ভাইবোন হয়।
ভিউটির জেড-ইনডেক্স পরিবর্তন করতে আপনি ভিউর zPositionলেয়ারের সম্পত্তিটি (এটি কোনও CALayerঅবজেক্ট) ব্যবহার করতে পারেন ।
theView.layer.zPosition = 1;
যেমনটি ভিক্টর নর্ডলিং যোগ করেছেন, "বড় মানগুলি শীর্ষে রয়েছে negative নেতিবাচক মান সহ আপনি যে কোনও মান আপনার পছন্দ করতে পারেন।" ডিফল্ট মান 0 হয়।
স্তরটি অ্যাক্সেস করতে আপনার কোয়ার্টজোর ফ্রেমওয়ার্কটি আমদানি করতে হবে। আপনার বাস্তবায়ন ফাইলের শীর্ষে কোডের এই লাইনটি যুক্ত করুন।
#import "QuartzCore/QuartzCore.h"
zPositionকাজ করার জন্য দর্শনগুলির তত্ত্বাবধানে কি একই রকম হওয়া উচিত ?
আইবি এবং সুইফট
প্রবাহিত বিন্যাস দেওয়া যেখানে হলুদ হল তত্ত্বাবধান এবং লাল, সবুজ এবং নীল হলুদ বর্ণের ভাইবোন সাবভিউগুলি,
লক্ষ্যটি হল একটি সাবভিউ (শীর্ষে সবুজ বলা যাক) শীর্ষে নিয়ে যাওয়া।
ইন্টারফেস বিল্ডারে আপনাকে যা করতে হবে তা হ'ল ডকুমেন্টস আউটলাইনে তালিকার নীচের অংশে আপনি যে ভিউটি প্রদর্শন করতে চান তা টেনে আনুন।
বিকল্পভাবে, আপনি দৃশ্যটি নির্বাচন করতে পারেন এবং তারপরে মেনুতে সম্পাদক> সাজানো> সম্মুখস্থ প্রেরণে যান ।
প্রোগ্রামভিত্তিকভাবে এটি করার বিভিন্ন উপায় রয়েছে।
পদ্ধতি 1
yellowView.bringSubviewToFront(greenView)
এই পদ্ধতিটি উপরের আইবি উত্তরের প্রোগ্রামেটিক সমতুল্য।
এটি কেবল তখনই কাজ করে যদি পর্যালোচনাগুলি একে অপরের ভাইবোন হয়।
সাবউভিউগুলির একটি অ্যারে এতে অন্তর্ভুক্ত রয়েছে yellowView.subviews। এখানে, সূচক থেকে bringSubviewToFrontসরানো হয় । এটি সঙ্গে পর্যবেক্ষণ করা যেতে পারেgreenView02
print(yellowView.subviews.indexOf(greenView))
পদ্ধতি 2
greenView.layer.zPosition = 1
0অন্যান্য সমস্ত দর্শনের জন্য, ফলাফলটি greenViewএটির মতো দেখতে দেখতে শীর্ষে রয়েছে। যাইহোক, এটা এখনও সূচিতে রয়ে 0এর yellowView.subviewsঅ্যারে। এটি কিছু অপ্রত্যাশিত ফলাফলের কারণ হতে পারে, কেননা ট্যাপ ইভেন্টের মতো জিনিসগুলি এখনও সর্বোচ্চ সূচীর সংখ্যা সহ দর্শনায় প্রথম যাবে। যে কারণে উপরের পদ্ধতি 1 এর সাথে যাওয়া আরও ভাল।zPositionসেট করা যেতে পারে CGFloat.greatestFiniteMagnitude( CGFloat(FLT_MAX)সুইফট এর পুরোনো সংস্করণগুলি মধ্যে) তা নিশ্চিত করতে উপরে হয়।[parentView bringSubviewToFront:view] ;
সেই দৃশ্যের মধ্যে আপনি শীর্ষে আনতে চান ... (দ্রুত)
superview?.bringSubviewToFront(self)
আপনি যদি কোকোস 2 ডি ব্যবহার করছেন তবে আপনি [পিতামাতাভিউ নিয়ে আসুনসুবিউটিওফ্রন্ট: দেখুন] এর সাথে একটি সমস্যা দেখতে পাবেন, কমপক্ষে এটি আমার পক্ষে কাজ করছে না। আমি যে ভিউটি সামনে চেয়েছিলাম তা না নিয়ে আমি অন্যান্য মতামতগুলি আবার পাঠিয়েছি এবং এটি কৌশলটি করেছে।
[[[CCDirector sharedDirector] view] sendSubviewToBack:((UIButton *) button)];
আমরা আইওএসে জেডপজিশন ব্যবহার করতে পারি
আমাদের যদি সেলুনডেটল ভিউ নামের মতামত থাকে তবে
:@IBOutlet weak var salonDetailView: UIView!
এবং জিএমএসম্যাপভিউয়ের জন্য ইউআইভিউ রয়েছে
যেমন:@IBOutlet weak var mapViewUI: GMSMapView!
দৃশ্য দেখানোর জন্য salonDetailView উপরের mapViewUI
নীচের হিসাবে zPosition ব্যবহার করুন
salonDetailView.layer.zPosition = 1