আপনার নিজের থেকে সমস্ত মতামত সরানোর সর্বোত্তম উপায় কী?


87

আমি ভাবছিলাম এরকম কিছু কাজ করতে পারে:

    for (UIView* b in self.view.subviews)
    {
       [b removeFromSuperview];
    }

আমি প্রতিটি ধরণের মতামত মুছে ফেলতে চাই। ইউআইআইমেজেস, বোতাম, পাঠ্য ক্ষেত্র ইত্যাদি etc.


4
এটা চলবে. আপনার যদি একাধিক স্তরের সংক্ষিপ্তসার থাকে ... বা নাও হতে পারে তবে এ জাতীয় পুনরাবৃত্তিমূলক কাজটি করতে পারেন। আমি নিশ্চিত নই আপনি এর জন্য কী করতে চান।
— ডাস্টিন

ওই কাজগুলো? আমি ভেবেছিলাম যে bতাড়াতাড়ি subviewsঅ্যারে থেকে সরানো হবে , একটি দ্রুত অঙ্কের লুপের মধ্যে একটি রূপান্তর ঘটায়, যা নিষিদ্ধ।
— মাজিওড

4
@ মজিদ চেক সাবভিউর সম্পত্তিটি পরীক্ষা করুন: @ প্রপার্টি (ননোটমিক, রিডোনলি, কপি) এনএসআরএ * সাবভিউগুলি - এটি অনুলিপি হিসাবে ঘোষণা করা হয়, সুতরাং যখন আমরা সাবভিউগুলি মুছে ফেলি তখন আমরা সেই অ্যারেটি সংশোধন করি না (কারণ এটি একটি অনুলিপি)।
— সর্বোচ্চ

4
@ ম্যাক্স: এটি ভুল। copyসুনির্দিষ্টভাবে উল্লেখ করা মানে এটি একটি কপি করে তোলে যখন সেট ; পাওয়ার বিষয়ে কিছুই নির্দিষ্ট করা হয়নি। এটি সম্ভবত একটি অনুলিপি ফিরে এসেছে সম্ভবত, তবে এটি সম্পত্তি সংজ্ঞাটির অংশ নয়।
— jscs

@ ডব্লুআরঙ্কাঙ্ক্যাক্টর একমত, আপনি ঠিক বলেছেন যে কপির কীওয়ার্ডটির মূল্য পাওয়ার সাথে কোনও সম্পর্ক নেই (তবে আমি মনে করি এটি অন্তর্ভুক্ত)।
— সর্বোচ্চ

উত্তর:


250
[self.view.subviews makeObjectsPerformSelector: @selector(removeFromSuperview)];

এটি আপনার বৈকল্পিকের মতো, তবে সামান্য খাটো।


এটি ছাড়া কী হবে - একই পদ্ধতি ব্যবহার করে? @ মজাইদ
— হেমং

সাবউভিউ সরানোর জন্য মেকওবজেক্টস পারফর্মস্লেেক্টর এবং ম্যানুয়ালি লুপের মধ্যে কি কোনও পারফরম্যান্স (পারফরম্যান্স দ্বারা) রয়েছে?
— গণপত



2

আপনি এটি ব্যবহার করতে পারেন

//adding an object to the view
view.addSubView(UIButton())

// you can remove any UIControls you have added with this code
view.subviews.forEach { (item) in
     item.removeFromSuperview()
}

ভিউ হল এমন দৃশ্য যা আপনি যেখান থেকে সমস্ত কিছু মুছতে চান। আপনি প্রত্যেকটি প্রতিবেদনটি forEach করে সরিয়ে দিচ্ছেন


আপনি কি আপনার উত্তর প্রসারিত করতে পারেন?
— DᴀᴅᴇʀVᴀᴅᴇʀ

এটি কি পুনরুক্তি করার সময় কোনও সংগ্রহকে পরিবর্তিত করছে না?
— mixtly87

0

সুইফ্ট 4 + এর জন্য। আপনি এতে একটি এক্সটেনশন করতে পারেন UIView। যখনই প্রয়োজন হবে ফোন করুন।

extension UIView {
    func removeAllSubviews() {
        subviews.forEach { $0.removeFromSuperview() }
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.