সমস্ত বিদ্যমান সমাধান আইওএস 8 এ আমার জন্য কাজ করে না যখন টেবিলটি পূরণ করার জন্য পর্যাপ্ত সারি না থাকায় আইওএস এই পরিস্থিতিতে স্বয়ংক্রিয়ভাবে ইনসেটটি সামঞ্জস্য করবে adjust (পর্যাপ্ত সারি থাকলেও বিদ্যমান উত্তরগুলি ভাল থাকে)
এই ইস্যুতে 6 ঘন্টা নষ্ট করার পরে অবশেষে আমি এই সমাধান পেয়েছি।
সংক্ষেপে, পর্যাপ্ত কক্ষ না থাকলে আপনার টেবিলভিউতে খালি ঘরগুলি সন্নিবেশ করা দরকার, সুতরাং টেবিলভিউয়ের সামগ্রীর আকারটি এত বড় যে আইওএস আপনার জন্য ইনসেটটি সামঞ্জস্য করবে না।
আমি সুইফটে এটি কীভাবে করেছি:
1.) minimumCellNum
একটি শ্রেণীর সম্পত্তি হিসাবে একটি ভেরিয়েবল ঘোষণা
var minimumCellNum: Int?
2.) ক্যালকুলেট minimumCellNum
এবং সেট tableView.contentOffset
মধ্যেviewWillAppear
let screenHeight = Int(UIScreen.mainScreen().bounds.height)
self.minimumCellNum = (screenHeight - 103 - heightOfOtherCustomView) / heightOfYourCell
self.tableView.contentOffset = CGPointMake(0, 44)
3.) ইন tableView(tableView: UITableView, numberOfRowsInSection section: Int))
let numOfYourRows = YOUR LOGIC
if numOfYourRows > minimumCellNum {
return numOfYourRows
} else {
return minimumCellNum!
}
৪) স্টোরিবোর্ডে এবং ভিতরে একটি ফাঁকা ঘর নিবন্ধভুক্ত করুন যার selection
বৈশিষ্ট্যNone
tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)
if indexPath.row < numOfYourRows {
return YOUR CUSTOM CELL
} else {
let cell = tableView.dequeueReusableCellWithIdentifier("EmptyCell", forIndexPath: indexPath) as! UITableViewCell
return cell
}
5.) ইন tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
if tableView == self.tableView {
if numOfYourRows < (indexPath.row + 1) {
return
}
YOUR LOGIC OF SELECTING A CELL
}
এটি একটি নিখুঁত সমাধান নয়, তবে এটিই একমাত্র কার্যপ্রণালী যা আইওএস 8 এর জন্য আমার পক্ষে সত্যই কাজ করে I'd আমি আরও জানতে চাই যে আরও সুন্দর সমাধান আছে কিনা।