আমি যখন 4 টি সারি দিয়ে একটি টেবিল ভিউ সেট আপ করি, তখনও ভরাট সারির নীচে অতিরিক্ত বিভাজক লাইন (বা অতিরিক্ত ফাঁকা ঘর) থাকে।
আমি এই কোষগুলি কীভাবে সরিয়ে ফেলব?
আমি যখন 4 টি সারি দিয়ে একটি টেবিল ভিউ সেট আপ করি, তখনও ভরাট সারির নীচে অতিরিক্ত বিভাজক লাইন (বা অতিরিক্ত ফাঁকা ঘর) থাকে।
আমি এই কোষগুলি কীভাবে সরিয়ে ফেলব?
উত্তর:
কেবল একটি ইউআইভিউউ টেবিলের দিকে টানুন। স্টোরিবোর্ডে, এটি আপনার কাস্টম সেলগুলির নীচে শীর্ষে বসে থাকবে। আপনি এর নাম "পাদলেখ" রাখতে পছন্দ করতে পারেন।
এখানে এটি স্বচ্ছতার জন্য সবুজ রঙে দেখানো হয়েছে, আপনি সম্ভবত পরিষ্কার রঙ চান।
নোট করুন যে উচ্চতাটি সামঞ্জস্য করার মাধ্যমে আপনি পছন্দ মতো টেবিলে "নীচের বাউন্স" কীভাবে পরিচালনা করবেন তা আপনি প্রভাবিত করতে পারেন। (উচ্চতা শূন্য সাধারণত ভাল থাকে)।
প্রোগ্রামগতভাবে এটি করতে:
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.tableFooterView = UIView()
}
- (void)viewDidLoad
{
[super viewDidLoad];
// This will remove extra separators from tableview
self.tableView.tableFooterView = [UIView new];
}
বা আপনি যদি পছন্দ করেন,
self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
সারণী দর্শন নিয়ামকটিতে যুক্ত করুন ...
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
// This will create a "invisible" footer
return CGFLOAT_MIN;
}
এবং যদি প্রয়োজন হয় ...
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
return [UIView new];
// If you are not using ARC:
// return [[UIView new] autorelease];
}
tableFooterView
টেবিলটি এখনও সেই ঘরের নীচে থাকা সামগ্রীর প্রত্যাশা করায় এটি ব্যবহার করে সারিটির সর্বশেষ কক্ষে পৃথককারীকে রেখে দেয়। Wayতিহাসিক উপায়ে ব্যবহার করা সেই শেষ বিভাজককে দূর করবে এবং সামগ্রিকভাবে আরও ভাল দেখায়।
শ্রেণীবদ্ধ টেবিল শৈলীতে ডাব্লু / আউট করার আরও একটি উপায় এখানে রয়েছে এবং আপনি সম্ভবত এটি অনুমান করবেন না। যোগ করার পদ্ধতি একটি হেডার এবং টেবিলে পাদচরণ (সম্ভবত এক বা অন্যান্য যথেষ্ট চেক করা হয়েছে) বিভাজক ফিলার / ফাঁকা সারি থেকে অদৃশ্য হয়ে যায়।
আমি এতে হোঁচট খেয়েছি কারণ আমি মাংসযুক্ত আঙ্গুলের সাহায্যে টেবিলের ঘরের পরিবর্তে টেবিলগুলির শীর্ষে এবং নীচে কিছুটা জায়গা চেয়েছিলাম বোতামগুলির ঝুঁকি হ্রাস করতে। শিরোনাম এবং পাদলেখ হিসাবে খালি ভিউ আটকে দেওয়ার একটি পদ্ধতি এখানে। আপনি যে উচ্চতা পছন্দ করেন তা ব্যবহার করুন, আপনি এখনও অতিরিক্ত বিভাজক লাইনগুলি মুছে ফেলুন।
- (void) addHeaderAndFooter
{
UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 10)];
v.backgroundColor = [UIColor clearColor];
[self.myTableView setTableHeaderView:v];
[self.myTableView setTableFooterView:v];
[v release];
}
@ ক্যাসাব্যাশের প্রতিক্রিয়া হিসাবে, আমি আমার অ্যাপ্লিকেশানের কোডটিতে ফিরে এসেছি (আইটিউনস স্টোরের "অ্যাকমিলিস্টস" তালিকা পরিচালক ...) এবং যাচাই করতে অ্যাডহাইডারঅ্যান্ডফুটার পদ্ধতিটি সংক্ষিপ্তভাবে প্রচারিত করেছি। এটি ছাড়া , আমার অতিরিক্ত সারি বিভাজক রয়েছে; কোড সহ, আমি এই উইন্ডোটিতে যা দেখছি তা আমার কাছে রয়েছে: কোনও টেবিল সারি বিভাজক চিত্র নয় । সুতরাং আমি নিশ্চিত না কেন এটি আপনার পক্ষে কাজ করবে না। তদ্ব্যতীত, এটি আমার কাছে বোধগম্য হয় যে কোনও টেবিল ভিউতে কোনও কাস্টম ফুটার থাকার কারণে অবশ্যই তার নীচে ফাঁকা সারিগুলির জন্য সারি বিভাজক অঙ্কন বন্ধ করতে হবে। এটা ঘৃণ্য হবে। রেফারেন্সের জন্য, আমি টেবিলগুলির দিকে চেয়েছিলাম যেখানে স্ক্রিনে দেখা যায় তার চেয়ে বেশি সারি ছিল এবং তারপরে দুটি সারিযুক্ত একটি টেবিলের জন্য। উভয় ক্ষেত্রেই কোনও বহিরাগত বিভাজক নেই।
সম্ভবত আপনার কাস্টম দর্শনগুলি আসলে যুক্ত করা হয়নি। এটি যাচাই করতে, ব্যাকগ্রাউন্ডের রঙ সেট করুন clearColor
, যেমন, ব্যতীত অন্য কোনও কিছুতে [UIColor redColor]
। আপনি যদি টেবিলের নীচে কয়েকটি লাল বার দেখতে না পান তবে আপনার পাদচরণ সেট করা হয়নি।
মধ্যে UITableView ফাঁকা সারি জন্য অতিরিক্ত বিভাজক রেখা মুছে ফেলার পদ্ধতি সুইফট
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.yourTableview.tableFooterView = UIView()
}
আমি wkw উত্তর প্রসারিত করতে চাই :
কেবল উচ্চতা 0 এর সাথে কেবল পাদলেখ যুক্ত করা কৌশলটি করবে। (এসডিকে ৪.২, ৪.৪.১ এ পরীক্ষিত)
- (void) addFooter
{
UIView *v = [[UIView alloc] initWithFrame:CGRectZero];
[self.myTableView setTableFooterView:v];
}
বা এমনকি সহজ - যেখানে আপনি আপনার টেবিলভিউ সেট আপ করেন সেখানে এই লাইনটি যুক্ত করুন:
//change height value if extra space is needed at the bottom.
[_tableView setTableFooterView:[[UIView alloc] initWithFrame:CGRectMake(0,0,0,0)]];
বা এমনকি সহজ - কোনও বিভাজক সরানোর জন্য:
[_tableView setTableFooterView:[UIView new]];
আবার wkw ধন্যবাদ :)
ফুটার হিসাবে UIView
আপনার মধ্যে কেবল একটি এ টানুন UITableView
। ফুটার ভিউয়ের উচ্চতা 0 তে সেট করুন।
এটা চেষ্টা কর. এটি আমার পক্ষে কাজ করেছে:
- (void) viewDidLoad
{
[super viewDidLoad];
// Without ARC
//self.tableView.tableFooterView = [[[UIView alloc] init] autorelease];
// With ARC, tried on Xcode 5
self.tableView.tableFooterView = [UIView new];
}
override func viewDidLoad() {
super.viewDidLoad()
tableView.tableFooterView = UIView()
}
আপনি যদি সুইফ্ট ব্যবহার করছেন, সারণীদর্শনটি পরিচালনা করে এমন কন্ট্রোলারের ডিডলোডটি দেখতে নিম্নলিখিত কোডটি যুক্ত করুন :
override func viewDidLoad() {
super.viewDidLoad()
//...
// Remove extra separators
tableView.tableFooterView = UIView()
}
আপনি শেষে একটি খালি ফুটার যুক্ত করতে পারেন তবে এটি খালি ঘরগুলি আড়াল করবে তবে এটি বেশ কুরুচিপূর্ণও দেখাবে:
tableView.tableFooterView = UIView()
আরও ভাল পন্থা রয়েছে: ফুটার হিসাবে টেবিলের ভিউ শেষে 1 পয়েন্ট লাইন যুক্ত করুন এবং খালি ঘরগুলিও আর প্রদর্শিত হবে না।
let footerView = UIView()
footerView.frame = CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: 1)
footerView.backgroundColor = tableView.separatorColor
tableView.tableFooterView = footerView
শুধু এই কোডটি যোগ করুন ( সুইফট )। ।
tableView.tableFooterView = UIView()
অ্যাডভান্সিং জে। কোস্তার সমাধান: আপনি কোডের এই লাইনটি রেখে টেবিলে একটি বিশ্বব্যাপী পরিবর্তন করতে পারেন:
[[UITableView appearance] setTableFooterView:[[UIView alloc] initWithFrame:CGRectZero]];
প্রথম সম্ভাব্য পদ্ধতির ভিতরে (সাধারণত AppDelegate
, ইন: application:didFinishLaunchingWithOptions:
পদ্ধতিতে)।
আমি জানি এই প্রশ্নের উত্তর গৃহীত হয়েছে তবে কীভাবে অতিরিক্ত বিভাজক লাইনটি লুকানো যায় তার জন্য আমি এখানে বিভিন্ন উপায় রেখেছি UITableView
।
আপনি tableView
স্ট্যান্ডার্ড বিভাজক লাইনটি লুকিয়ে রাখতে পারেন এবং প্রতিটি কক্ষের শীর্ষে আপনার কাস্টম লাইন যুক্ত করতে পারেন।
হালনাগাদ:
কাস্টম বিভাজক যুক্ত করার সহজ উপায় হ'ল UIView
1 পিএক্স উচ্চতার সহজ যোগ করা :
UIView* separatorLineView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 1)];
separatorLineView.backgroundColor = [UIColor grayColor]; /// may be here is clearColor;
[cell.contentView addSubview:separatorLineView];
অথবা
self.tblView=[[UITableView alloc] initWithFrame:CGRectMake(0,0,320,370) style:UITableViewStylePlain];
self.tblView.delegate=self;
self.tblView.dataSource=self;
[self.view addSubview:self.tblView];
UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 10)];
v.backgroundColor = [UIColor clearColor];
[self.tblView setTableHeaderView:v];
[self.tblView setTableFooterView:v];
[v release];
অথবা
- (float)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
// This will create a "invisible" footer
return 0.01f;
}
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
// To "clear" the footer view
return [[UIView new] autorelease];
}
বা আমার পছন্দ সর্বকালের সেরা এবং সহজ উপায়
self.tableView.tableFooterView = [[UIView alloc] init];
যে কোনও একটি চেষ্টা করুন;
আপনি এই প্রশ্নের উত্তর প্রচুর পেতে পারেন। সঙ্গে ম্যানিপুলেশন প্রায় তাদের অধিকাংশই UITableView
এর tableFooterView
অ্যাট্রিবিউট এবং এই সঠিক ভাবে খালি সারি লুকাতে হয়। কনভেনসিটির জন্য আমি সহজ এক্সটেনশন তৈরি করেছি যা ইন্টারফেস বিল্ডার থেকে খালি সারি চালু / বন্ধ করতে দেয়। আপনি এই টুকরোটি ফাইলটি থেকে এটি পরীক্ষা করে দেখতে পারেন । আমি আশা করি এটি আপনার সামান্য সময় সাশ্রয় করতে পারে।
extension UITableView {
@IBInspectable
var isEmptyRowsHidden: Bool {
get {
return tableFooterView != nil
}
set {
if newValue {
tableFooterView = UIView(frame: .zero)
} else {
tableFooterView = nil
}
}
}
}
ব্যবহার:
tableView.isEmptyRowsHidden = true
ইউটিবেলভিউ অতিরিক্ত বিভাজক লাইনটি অতিরিক্ত বিভাজক রেখাগুলি 3.0 3.0েকে লুকিয়ে রাখে
self.tbltableView.tableFooterView = UIView(frame: .zero)
আপনি যদি সর্বশেষ কক্ষের পরে কোনও বিভাজক না চান তবে আপনার পাদলেখের জন্য আপনার শূন্যের কাছাকাছি তবে শূন্য নয় উচ্চতার প্রয়োজন।
আপনার UITableViewDelegate
:
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return .leastNormalMagnitude
}
এর সাথে সুইফট দুর্দান্ত কাজ করে:
tableView.tableFooterView = UIView()
আপনার টেবিলভিউসেলটিতে x0 y-1 অবস্থানের পটভূমির রঙ, 100% প্রস্থ, 1px উচ্চতা হিসাবে পছন্দসই বিভাজক রঙের সাথে একটি দৃশ্য যুক্ত করুন add নিশ্চিত করুন যে টেবিলভিউসেল সাবউভিউগুলি ক্লিপ করে না, পরিবর্তে টেবিলভিউ করা উচিত।
সুতরাং আপনি কোড বা আইবি ছাড়াই কোনও হ্যাক ছাড়াই কেবল বিদ্যমান কোষগুলির মধ্যে একটি বিস্ময়কর সহজ এবং কার্যকারী বিভাজক পান।
দ্রষ্টব্য: উল্লম্ব শীর্ষে 1 ম বিভাজকটি বাউন্সে প্রদর্শিত হবে, তবে এটি কোনও ডিফল্ট আইওএস আচরণের কারণ হতে হবে না।
প্রোগ্রামটিমেটিকভাবে ইউআইটিবেলভিউয়ের নীচ থেকে অতিরিক্ত বিভাজক রেখাগুলি নির্মূল করতে, কেবলমাত্র দুটি লাইনের কোড লিখে রাখুন এবং এটি এটি থেকে অতিরিক্ত বিভাজককে সরিয়ে ফেলবে।
tableView.sectionFooterHeight = 0.f;
tableView.sectionHeaderHeight = 0.f;
এই কৌশলটি সবসময় আমার জন্য কাজ করে, নিজেকে চেষ্টা করে দেখুন।
আমার গ্রহণযোগ্য উত্তরের একক টুকরা (আইওএস 9+, সুইফট ২.২) প্রয়োগ করার জন্য আমার ভাগ্য ভাল ছিল। আমি প্রয়োগ করার চেষ্টা করেছি:
self.tableView.tableFooterView = UIView(frame: .zero)
যাইহোক, আমার উপর কোনও প্রভাব ছিল না tableView
- আমি বিশ্বাস করি যে এটি ব্যবহার করছিলাম তার সাথে এর কিছু যুক্ত থাকতে পারেUITableViewController
।
পরিবর্তে, আমাকে কেবল viewForFooterInSection
পদ্ধতিটি ওভাররাইড করতে হয়েছিল (আমি tableFooterView
অন্য কোথাও সেট করিনি ):
override func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
return UIView(frame: .zero)
}
এটি tableView
একটি একক বিভাগের জন্য ভাল কাজ করেছে (যদি আপনার একাধিক বিভাগ থাকে তবে আপনাকে শেষেরটি নির্দিষ্ট করতে হবে)।
আপনার যদি কেবল একটি বিভাগ থাকে, তবে দ্রুত এবং সহজ উপায় হ'ল "সমতল" থেকে "দলবদ্ধ" তে সারণী দর্শন স্টাইলটি সেট করা। (চিত্র দেখুন)
আপনার যদি আরও বিভাগ থাকে তবে আপনাকে শিরোনামের উচ্চতা শূন্যে সেট করতে হবে (আপনার / আপনার গ্রাহকের / আপনার প্রকল্প পরিচালকের স্বাদের উপর নির্ভর করে)
যদি আপনার আরও বিভাগ থাকে, এবং শিরোনামগুলির সাথে গোলযোগ করতে চান না (এমনকি এটি সরল ক্ষেত্রে কেবল একটি লাইন হলেও), তবে আপনাকে পূর্বের উত্তরগুলিতে যেমন ব্যাখ্যা করা হয়েছিল, তেমনি আপনাকে একটি পাদদেশ হিসাবে একটি ইউআইভিউও সেট করা দরকার)
দ্রুত এবং সহজ সুইফট 4 টি উপায়।
override func viewDidLoad() {
tableView.tableFooterView = UIView(frame: .zero)
}
যদি আপনার স্ট্যাটিক সেল থাকে। আপনি ইন্সপেক্টর উইন্ডো থেকে বিভাজকটিও বন্ধ করতে পারেন। (আপনার যদি বিভাজনের প্রয়োজন হয় তবে এটি আকাঙ্ক্ষিত হবে না above ক্ষেত্রে উপরে ব্যবহারের পদ্ধতিটি দেখানো হয়েছে)
super.viewDidLoad()
) এবং সর্বোপরি উইকি উত্তরটিতে অন্তর্ভুক্ত রয়েছে সে সম্পর্কে আরও ভাল ব্যাখ্যা সহ। সমস্ত বিভাজক অপসারণ করার ক্ষেত্রে, এই প্রশ্নটি আসলে কী তা নয়, তাই আপনার শেষ সম্পাদনাটি এবং / অথবা আপনার উত্তর সম্পূর্ণরূপে মুছুন better
আপনি যদি ইউআইটিএবল ভিউতে অযাচিত স্থান সরিয়ে নিতে চান তবে আপনি নীচের দুটি পদ্ধতি ব্যবহার করতে পারেন
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return 0.1;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
return 0.1;
}
আমি এই ছোট টেবিলভিউ এক্সটেনশনটি জুড়েছি যা জুড়ে সহায়তা করে
extension UITableView {
func removeExtraCells() {
tableFooterView = UIView(frame: .zero)
}
}
এটি দিয়ে চেষ্টা করুন
জন্য উদ্দেশ্য সি
- (void)viewDidLoad
{
[super viewDidLoad];
// This will remove extra separators from tableview
self.yourTableView.tableFooterView = [UIView new];
}
সুইফ্টের জন্য
override func viewDidLoad() {
super.viewDidLoad()
self.yourTableView.tableFooterView = UIView()
}
যদি আপনি একটি আছে searchbar
আপনার view
(উদাহরণস্বরূপ সংখ্যক ফলাফল সীমিত করতে), তবে আপনাকে নিম্নোক্ত যোগ আছে shouldReloadTableForSearchString
এবংshouldReloadTableForSearchScope:
controller.searchResultsTable.footerView = [ [ UIView alloc ] initWithFrame:CGRectZero ];
সুইফট ইন (আমি 4.0 ব্যবহার করছি), আপনি একটি কাস্টম তৈরি করে এই কাজ করা সম্ভব করতে পারেন UITableViewCell
বর্গ, এবং পদ্ধতি। তারপর সব 0 । (টেবিল ভিউ সহ আমার প্রধান শ্রেণীর একটি পরিষ্কার ব্যাকগ্রাউন্ড রয়েছে) রঙ।overriding
setSelected
separator insets
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// eliminate extra separators below UITableView
self.separatorInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
}