UITableView aşağıda əlavə məhdudlaşdırıcıları aradan qaldırın

4 xəttli bir masa görünüşü qurduğumda, dolu xəttlərin altında hələ də əlavə bölmə xətləri (və ya əlavə boş hüceyrələr) var.

Bu hüceyrələri necə silə bilərəm?

2019

02 сент. RoundOutTooSoon-a təyin olundu 02 Sentyabr 2009-09-02 23:05 '09 at 11:05 pm 2009-09-02 23:05
@ 34 cavab
  • 1
  • 2

Interface Builder (iOS 9 +)

Yalnız bir UIView masa daxil sürükleyin. Storyboardda, xüsusi hüceyrələrinizin üstündə oturacaq. Siz "altbilgisi" deyə bilərsiniz.

Burada aydınlıq üçün bu yaşıl göstərilir, yəqin ki, aydın rəngə ehtiyacınız olacaq.

Qeyd edək ki, hündürlüyü düzəldərək, masanın "aşağı sıçraması" üstünlük təşkil etdiyinə təsir edə bilərsiniz. (Sıfırın hündürlüyü adətən gözəldir).

2019

Budur, qruplaşdırılmış masa stilindən istifadə etmək üçün başqa bir yoldur və ehtimal ki, təxmin etməyəcəksiniz. Bir masa üstü və altbilgiyi əlavə etmək (ehtimal ki, bir və ya digər, təsdiqlənməyib) məhdudlaşdırıcıların doldurma / boş satırlardan yox olmasına səbəb olur.

Bunun üzərinə stumbleddim, çünki masa üstü və altındakı kiçik bir məkan istər barmaqları ilə masanın əvəzinə düymələri vurma riskini azaltmaq istəyirdi. Burada metod başlıq və altbilginin boş təmsil edilməsinə bağlı qalmaqdır. Istədiyiniz hündürlüyü istifadə edin, hələ də əlavə bölmə xətlərini aradan qaldırırsınız.

 - (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]; } 

@Casebash cavab olaraq, mənim müraciətimdə koda geri qayıtdım (iTunes mağazasındakı "AcmeLists siyahısı meneceri" ...) və doğrulama üçün addHeaderAndFooter metodunu kodladım. Onsuz məndə əlavə xətt ayırıcılar var; Kodu ilə bu pəncərədə gördüyünüz şey var: masada heç bir sıra ayırıcı yoxdur . Buna görə də əminəm ki, bu sizin üçün işləməyəcəkdir. Üstəlik mənim üçün bir masa görünüşündəki hər hansı bir xüsusi footerin mövcudluğu onun altındakı boşluqlar üçün xətti məhdudlaşdırıcıları dayandırmalıdır. Bu, iyrənc olardı. Müraciət üçün ekranda görülə biləcək daha çox satır olduğu yerlərə və sonra iki sıra bir masaya baxdıq. Hər iki halda da kənar ayırıcılar yoxdur.

Xüsusi görünüşləriniz həqiqətən əlavə edilməmiş ola bilər. Bunu təsdiq etmək üçün, fon rəngini clearColor başqa bir dəyərə, məsələn, [UIColor redColor] . Masanın altındakı qırmızı sütunları görmürsəniz, footer ayarlanmamışdır.

127
24 нояб. Cavab verilir wkw 24 nov. 2009-11-24 15:17 '09 at 15:17 2009-11-24 15:17

Swift-in UITableView-də boş satırlar üçün əlavə bölmələr çıxarın

 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. self.yourTableview.tableFooterView = UIView() } 
57
29 окт. cavabı 29 yanvarda dineshthamburu verilir . 2014-10-29 08:44 '14 da 8:44 2014-10-29 08:44

Wkw cavabını genişləndirmək istərdim :

Sadəcə 0-a qədər yüksəkliyə malik bir altlıq əlavə edərkən aldadıcı olacaq. (sdk 4.2, 4.4.1-də test edilmişdir)

 - (void) addFooter { UIView *v = [[UIView alloc] initWithFrame:CGRectZero]; [self.myTableView setTableFooterView:v]; } 

və ya hətta daha sadədir - masa görünüşünüzü özelleştirdiyseniz, bu linki əlavə edin:

 //change height value if extra space is needed at the bottom. [_tableView setTableFooterView:[[UIView alloc] initWithFrame:CGRectMake(0,0,0,0)]]; 

və ya daha da asan - yalnız hər hansı bir məhdudlaşdırıcıları silin:

 [_tableView setTableFooterView:[UIView new]]; 

Yenə wkw :)

36
24 марта '12 в 19:21 2012-03-24 19:21 Cavab Guntis Treulands tərəfindən 24 Mart '12 'saat 19:21' də verilir. 2012-03-24 19:21

İOS 7 + for storyboard istifadə

Bir UIView UITableView a footer kimi UITableView . Footer görünüşünün yüksəkliyini 0 olaraq təyin edin.

22
18 марта '14 в 4:27 2014-03-18 04:27 Cavab Kyle Clegg tərəfindən 18 Mart '14 'də 4:27' də veriləcək 2014-03-18 04:27

Bunu sınayın. Mənim üçün çalışdı:

 - (void) viewDidLoad { [super viewDidLoad]; // Without ARC //self.tableView.tableFooterView = [[[UIView alloc] init] autorelease]; // With ARC, tried on Xcode 5 self.tableView.tableFooterView = [UIView new]; } 
18
16 нояб. Cavab 16 noyabrda Ambili B Menon tərəfindən verilir. 2012-11-16 14:35 '12 saat 14:35 'da 2012-11-16 14:35

Swift üçün:

  override func viewDidLoad() { super.viewDidLoad() tableView.tableFooterView = UIView() } 
11
25 июля '15 в 14:36 2015-07-25 14:36 Sebastian tərəfindən verilmiş cavab 25 İyul, '15 'də saat 14:36' da başlayacaq

Sadəcə, sonunda boş bir altlıq əlavə edə bilərsiniz, sonra boş hüceyrələri gizlədəcək, lakin bu da olduqca çirkin görünür:

 tableView.tableFooterView = UIView() 

2019

16 марта '17 в 12:47 2017-03-16 12:47 Cavab Darko tərəfindən 16 Mart '17 'də 12:47 2017-03-16 12:47' də verilir

J. Costa'nın təşviqi: Aşağıdakı kod satırını əlavə edərək cədvəldə qlobal dəyişikliklər edə bilərsiniz:

 [[UITableView appearance] setTableFooterView:[[UIView alloc] initWithFrame:CGRectZero]]; 

ilk mümkün metod daxilində (adətən AppDelegate -də: application:didFinishLaunchingWithOptions: metodu) daxilində.

7
06 нояб. Cavab verilib o.shnn 06 noyabr. 2014-11-06 14:41 '14 at 14:41 2014-11-06 14:41

Swift istifadə edirsinizsə , cədvəl görünüşünü idarə edən viewDidLoad nəzarətçisinə aşağıdakı kodu əlavə edin:

 override func viewDidLoad() { super.viewDidLoad() //... // Remove extra separators tableView.tableFooterView = UIView(frame: CGRectZero) } 
7
12 апр. Babatunde Adeyemi 12 Aprel cavab verdi. 2015-04-12 18:16 '15 at 18:16 'de 2015-04-12 18:16

yalnız bu kodu əlavə edin ( sürətli ) ..

 tableView.tableFooterView = UIView() 
6
01 мая '17 в 23:36 2017-05-01 23:36 cavab 01 may '17 saat 23:36 2017-05-01 23:36 tarixində verilir

Mən bu sualın qəbul etdiyini bilirəm, ancaq əlavə UITableView ayırıcı UITableView gizlətmək üçün burada müxtəlif yollar UITableView .

Sizə tableView standart ayırıcı satırını tableView və hər bir hüceyrənin yuxarı hissəsində öz satırınızı əlavə edə bilərsiniz.

Yeniləmə:

Xüsusi bir məhdudlaşdırıcı əlavə etmək üçün en asan yol sadə UIView 1px hündürlüyü əlavə etməkdir:

 UIView* separatorLineView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 1)]; separatorLineView.backgroundColor = [UIColor grayColor]; /// may be here is clearColor; [cell.contentView addSubview:separatorLineView]; 

Və ya

  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]; 

Və ya

 - (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]; } 

Yoxsa ən yaxşı və ən asan yolu olmuşam,

 self.tableView.tableFooterView = [[UIView alloc] init]; 

Onlardan hər hansı bir cəhd edin;

6
12 сент. İPatel tərəfindən verilmiş cavab 12 sentyabr 2013-09-12 06:55 '13 'da 6:55' da 2013-09-12 06:55

Əlavə separator xətti uitableview əlavə xətt ayırıcıları gizlət 3.0 sürüşdürün

  self.tbltableView.tableFooterView = UIView(frame: .zero) 
5
12 окт. 12 dekabr Parlamenti Changela'ya cavab verdi . 2016-10-12 08:59 '16 'da 8:59' də 2016-10-12 08:59 'də

Sabit bir hündürlüyü olan sabit bir sıra göstərmək üçün bir masa görünüşünü istifadə etdim, buna görə təkrarladığım və kaydırmaq üçün əlçatmaz hala gətirdim.

5
14 янв. Cavab verildi Case 14 Yanvar 2010-01-14 08:09 '10 at 8:09 2010-01-14 08:09

Yalnız TableViewCell üçün x0 y-1-də fon rəngini, 100% eni, 1 piksel hündürlüyü kimi istənilən ayırıcı rəngi ilə bir görünüş əlavə edin. TableViewCell, clip-obyektlərini dəstəkləmədiyinə əmin olun və tableView olmalıdır.

Beləliklə, heç bir kod pozulmadan və ya IB olmadan yalnız mövcud hüceyrələr arasında mütləq sadə və işləyən ayırıcıya sahibsiniz.

Qeyd Şaquli üst sıçrayışla, ilk ayırıcı görünür, ancaq bu bir problem olmamalıdır, çünki bu, iOS-un standart davranışıdır.

4
25 апр. Cavab maaalex 25 apr verilir . 2012-04-25 20:16 '12 at 8:16 pm 2012-04-25 20:16

Bu suala bir çox cavab tapa bilərsiniz. Onların əksəriyyəti tableFooterView ilə UITableView atributu tableFooterView ilə manipulyasiya edir və bu, boş sətirləri gizlətmək üçün doğru yoludur. Rahatlıq üçün, İnterface Builder-dan boş satırları aktivləşdirməyə / silməyə imkan verən sadə bir uzantı yaratdım. Bunu bu GIST faylından yoxlaya bilərsiniz. Ümid edirəm ki, bu, vaxtınızdan bir qismini xilas edə bilər.

 extension UITableView { @IBInspectable var isEmptyRowsHidden: Bool { get { return tableFooterView != nil } set { if newValue { tableFooterView = UIView(frame: .zero) } else { tableFooterView = nil } } } } 

İstifadə edin:

 tableView.isEmptyRowsHidden = true 

2019

12 нояб. Cavab Stanislau Baranouski tərəfindən 12 Noyabrda verilir 2018-11-12 09:36 '18 saat 09:36 'da 2018-11-12 09:36

Swift ilə yaxşı işləyir:

 tableView.tableFooterView = UIView() 
3
23 дек. Cavab Marcelo Gracietti tərəfindən verilir 23 Dekabr. 2016-12-23 02:51 '16 'da 2:51' də 2016-12-23 02:51 'də

UItableview altındakı əlavə bölmə xətlərinin proqramlaşdırılmış şəkildə çıxarılması üçün aşağıdakı iki kod satırını yazın və ondan əlavə ayırıcıyı çıxarın.

 tableView.sectionFooterHeight = 0.f; tableView.sectionHeaderHeight = 0.f; 

Bu oyun mənim üçün hər zaman çalışır, özünü sınayın.

3
17 апр. Cavab verilir Kalpeş Pançasara 17 Aprel 2017-04-17 13:44 '17 at 1:44 pm 2017-04-17 13:44

Son hücrenin ardından hər hansı bir ayırıcı istəmirsinizsə, altbilginin sıfıra yaxınlaşması lazımdır, lakin sıfır hündürlüyü deyil.

UITableViewDelegate :

 func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { return .leastNormalMagnitude } 
3
14 марта '17 в 10:38 2017-03-14 10:38 Cavab 14 mart '17 'də saat 10:38' da veriləcək

Bir UITableview-də istenmeyen boşluğu aradan qaldırmaq istəyirsinizsə, aşağıdakı iki üsuldan istifadə edə bilərsiniz.

 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ return 0.1; } - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { return 0.1; } 
1
15 апр. Cavab 15 aprel tarixindən Hari tərəfindən verilir. 2017-04-15 14:13 '17 at 2:13 pm 2017-04-15 14:13

Alınan cavabın bir hissəsinin (iOS 9 +, Swift 2.2) tətbiqi ilə xoşbəxt oldum. Mən həyata keçirməyə çalışdım:

 self.tableView.tableFooterView = UIView(frame: .zero) 

Lakin, mənim tableView təsir təsirə məruz tableView - Mən bir UITableViewController istifadə ki, bir şey ola bilər inanıram.

Bunun əvəzində, viewForFooterInSection metodunu (mən başqa bir yerdə tableFooterView təyin tableFooterView ) tableFooterView :

 override func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { return UIView(frame: .zero) } 

Bu, bir bölmə ilə bir tableView üçün gözəl işləyir (bir neçə bölmə varsa, sonuncu göstərməlisiniz).

1
29 марта '16 в 23:37 2016-03-29 23:37 Cavab BAP 29 Mart '16 'da 23:37 2016-03-29 23:37' də verilir

Tez və asan Swift 4 yol.

 override func viewDidLoad() { tableView.tableFooterView = UIView(frame: .zero) } 

Statik hüceyrələriniz varsa. Ayırıcıyı müfəttiş pəncərəsindən də bağlaya bilərsiniz. (bir ayırıcıya ehtiyacınız varsa, bu arzuolunmazdır. Bu halda yuxarıda göstərilən metodu istifadə edin) 2019

20 марта '18 в 2:39 2018-03-20 02:39 Alix tərəfindən 20 Mart '18' də 2:39 2018-03-20 02:39 'da cavab verildi

Swift 4.0 uzadılması

Yalnız kiçik bir hekayə uzantısı:

2019

19 февр. Cavab 19 fevralda Nik Kov tərəfindən verilmişdir 2018-02-19 17:20 '18 saat 17: 20-da 2018-02-19 17:20

Yalnız bir bölməiniz varsa, ən qısa və asan bir şəkildə, "Düz" dən "Qruplaşdırılan" -dan cədvəl baxım stilini sadəcə qurmaqdır. (şəkil bax)

2019

31 окт. Gefilte Fish tərəfindən verilmiş cavab 31 oktyabr. 2017-10-31 18:51 '17 saat 06:51 'da 2017-10-31 18:51

view bir axtarış searchbar varsa (məsələn, nəticələrin sayını məhdudlaşdırmaq üçün) shouldReloadTableForSearchStringshouldReloadTableForSearchScope: üçün aşağıdakıları əlavə shouldReloadTableForSearchScope:

 controller.searchResultsTable.footerView = [ [ UIView alloc ] initWithFrame:CGRectZero ]; 
0
23 июня '16 в 23:25 2016-06-23 23:25 Cavab istifadəçi tərəfindən verilir. 3900346 23 iyun '23 : 23:25 2016-06-23 23:25

Swift (Mən istifadə edirəm 4.0), siz öz sinif UITableViewCelloverriding metodu overriding bunu edə bilərsiniz. Sonra separator insets bütün 0-da daxil edir . (masa görünüşümlə mənim əsas sinif aydın bir fon var) rəng.

 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) } 
0
04 мая '18 в 17:12 2018-05-04 17:12 may ayının 4-də saat 18: 00-da saat 17:

Hər şeyi kömək edən bu kiçik elektron tablo əlavə etdi.

 extension UITableView { func removeExtraCells() { tableFooterView = UIView(frame: .zero) } } 
0
26 сент. cavab Suresh Varma 26 sep tərəfindən verilir . 2018-09-26 21:10 '18 saat 9:10 'da 2018-09-26 21:10

UIKit bir tableView var zaman tableView boş bir hücre yaratmaq deyil. Beləliklə, biz hiylə qura bilərik və tableView kimi sıfır yüksəklikdə UIView obyektini təyin edə tableView .

 tableView.tableFooterView = UIView() 
0
19 марта '18 в 15:02 2018-03-19 15:02 Cavab iMuzahid tərəfindən 19 mart 19 : 00 -da 15:02 2018-03-19 15:02

Bununla çalışın

məqsəd üçün C

 - (void)viewDidLoad { [super viewDidLoad]; // This will remove extra separators from tableview self.yourTableView.tableFooterView = [UIView new]; } 

Swift üçün

 override func viewDidLoad() { super.viewDidLoad() self.yourTableView.tableFooterView = UIView() } 
0
16 янв. Cavab Atanu Mondal tərəfindən verilir 2019-01-16 14:30 '19 'da saat 14:30' da 2019-01-16 14:30 'da

Bunu sınayın

 self.tables.tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 10.0f)]; 
0
05 марта '15 в 12:11 2015-03-05 12:11 Cavab vishnu tərəfindən 05 mart 'da saat 12:11' də verilir 2015-03-05 12:11
  • 1
  • 2

etiketləri ilə bağlı digər suallar və ya sual