টেবিলভিউ কনট্রোলার, আইওএস - সুইফটে অতিরিক্ত খালি ঘরগুলি কীভাবে সরিয়ে ফেলা যায়


118

হাই আমার TableViewControllerদুটি স্থিতিশীল কোষ রয়েছে, তবে প্রদর্শিত হওয়ার পরে এটি দুটি স্থির কোষ এবং তারপরে টেবিল ভিউয়ের জন্য অন্য সমস্ত খালি ঘর দেখায়। তবে আমি এই ঘরগুলি অকেজো হিসাবে প্রদর্শন করতে চাই না। আমি দুটি স্থিতিশীল ঘর বাদে কীভাবে বাকী ঘরগুলি গোপন করব?

উত্তর:


403

আপনার viewDidLoad()ফাংশনে কোডের এই লাইনটি যুক্ত করুন:

tableView.tableFooterView = UIView()

4
সংক্ষিপ্ত এবং কার্যকর! মোহন মত কাজ!
যোগিপ্রিয়

6
এটার মানে কি? আপনি বিস্তারিত বলতে পারেন?
জয়প্রকাশ দুবে

এই উত্তরটি এখনও সুইফ্ট 3-এ বৈধ Also এছাড়াও, আপনি যদি টেবিলভিউ ব্যাকগ্রাউন্ডের রঙটিকে প্রধান দর্শনের পটভূমির রঙের মতো করে সেট করেন তবে এটি ফুটারটি চলে গেছে এমন দেখাবে।
মিকাহ মন্টোয়া

এর জন্য কি একই রকম সমাধান রয়েছে NSTableView? এটি একটি না tableFooterView
ixany

সুইফট 3.0 এর সাথে দুর্দান্ত কাজ করেtableView.tableFooterView = UIView()
মার্সেলো গ্র্যাসেটি

19

আপনার ইউআইটিএবলভিউ নির্বাচন করুন, গুণাবলী পরিদর্শকের কাছে যান এবং শৈলীটি গোষ্ঠীভুক্ত করুন।

এখানে চিত্র বর্ণনা লিখুন


7

এই যোগ করার জন্য, কারণ সেটিং tableFooterViewথেকে UIView()অপসারণ সারি কারণ আপনার একটি খালি সেটিং করা হয় UIView()সম্পত্তিতে অবজেক্ট। অ্যাপলের ডকুমেন্টেশন অনুসারে:

var tableFooterView: UIView?

সুতরাং একটি খালি ইউআইভিউ () সেট করা এই সম্পত্তিটির জন্য আপনার ডেটার নীচে কিছুই প্রদর্শন করবে না।

আপনি খালি সারিগুলি tableFooterViewডিফল্ট মানটিতে পুনরায় সেট করে আবার আনতে পারেন:

tableView.tableFooterView = nil

2
দুঃখিত তবে এটি হ্যাকের মতো দেখাচ্ছে না?
এওওয়াই

2
না, এটি করার একটি সম্পূর্ণ বৈধ উপায়। যদি আপনি একটি কাস্টম টেবিলফুটারভিউ সেট করতে চান, আপনি টেবিলফুটারভিউতে সেট করার আগে একটি কাস্টম ইউআইভিউ তৈরি করবেন d তারপরে এটিকে পুনরায় সেট করে নেওয়া কেবল এটির ডিফল্ট মানতে ফিরে আসবে।
টোস্ট

আমি দেখি. ধন্যবাদ) আমি দ্রুত নতুন হয়ে
যাওয়ায় এটি

6

সেট করাতে tableFooterViewঅতিরিক্ত ঘরের মতামত সরিয়ে ফেলা উচিত।

   @IBOutlet weak var tableView: UITableView! {
        didSet {
            tableView.tableFooterView = UIView(frame: .zero)
        }
    }

3

আপনি স্টোরিবোর্ডে এটি কেবল টেবিল ভিউয়ের পাদচরণ ক্ষেত্রের মধ্যে একটি ভিউ টেনে নিয়েও অর্জন করতে পারেন, এবং তারপরে এর উচ্চতা এবং পটভূমির রঙ যথাক্রমে 1 এ সেট করুন এবং সম্পত্তি পরিদর্শক ব্যবহার করে যথাযথভাবে সাফ করুন।

(এটি ধরে নিয়েছে যে আপনি হয় কোনও কারণে গ্রুপ স্টাইলের সেটিংটি ব্যবহার করতে বা করতে চান না। অন্যথায়, কেবল এটি করুন))


3

হর্সটির উত্তর সম্পর্কে সুইফট 4 বিস্তৃত করে, আপনার স্টোরিবোর্ডে আপনার টেবিল ভিউ থেকে প্রথমে নিয়ন্ত্রণের টানুন আপনার ভিউ কন্ট্রোলার ক্লাসে এবং টেবিল ভিউ নামে একটি আউটলেট তৈরি করুন।

@IBOutlet weak var tableView: UITableView!

তারপরে, আপনার ভিউ কন্ট্রোলারে আপনার ভিউডিডলডটি দেখতে এমন কিছু দেখতে পাওয়া উচিত:

    override func viewDidLoad() {
    super.viewDidLoad()

    tableView.dataSource = self
    tableView.delegate = self

    tableView.tableFooterView = UIView()
}


2

আপনি যদি UITableViewsআপনার অ্যাপ্লিকেশনটিতে সকলের জন্য সারিগুলি সরাতে চান তবে কেবল এটির মতো একটি এক্সটেনশান যুক্ত করুন:

সুইফ্ট 5.0

extension UITableView {

override open func didMoveToSuperview() {
    super.didMoveToSuperview()
    self.tableFooterView = UIView()

}

1
tableView.tableFooterView = UIView.init(frame: CGRect.zero)

viewWillAppearপদ্ধতির অভ্যন্তরে এই কোডটি কল করুন । এবং কাজ করবে


1

আপনার " ওভাররাইড ফানক ভিউডিল্ড কোড () " বা "ওভাররাইড ফানক ভিউ উইল অ্যাপয়ার (_ অ্যানিমেটেড: বুল)" ফাংশনে কোডের নীচে যুক্ত করুন ।

tblOutletName.tableFooterView = ইউআইভিউ ()


0

কেবল যুক্ত করুন:

tableView.tableFooterView = UIView()

ব্যাখ্যা:

এটি সম্পূর্ণ বৈধ এবং দ্রুতগতিতে পুরোপুরি কাজ করে B. আপনি যেহেতু সম্পত্তিটিতে একটি খালি ইউআইভিউ () অবজেক্ট সেট করছেন তাই টেবিলফুটারভিউকে ইউআইভিউতে সেট করা () সারিগুলি সরিয়ে দেয়।


-2

অ্যাবোবি আনওয়ার ঠিক আছে। আমরা যোগ করে এটি অর্জন করতে পারি

tableView.tableFooterView = UIView() // to remove extra cells in tableView

-3

আমি টেবিলভিউটি চেষ্টা করেছি t টেবিলফুটারভিউ = ইউআইভিউ () এবং এটি আমার পক্ষে কার্যকর হয়নি। আমি একটি কাস্টম টেলভিউভিউচেল ব্যবহার করছি, সম্ভবত সে কারণেই।

আমি একটি হ্যাক খুঁজে পেয়েছি। আমার ফান নম্বর অফফ্রাউসআইনসেকশনে

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return yourArrayClass.count - 1
}

এবং এটি আমার অতিরিক্ত ফাঁকা কাস্টম ইউআইটিএবলভিউসেলকে আর প্রদর্শন করবে না। অবশ্যই এটি অতিরিক্ত ফাঁকা। আমি আরও বেশি ঘর যুক্ত করে এটি পরীক্ষা করব। রেফারেন্সের জন্য, আমি সেলফোর্ডআউট ফাংশনের অভ্যন্তরে সুইফট 3, ফায়ারবেস, একটি কাস্টম সেল শ্রেণি ব্যবহার করছি।


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