Wiem, jak zmienić wysokość nagłówków sekcji w widoku tabeli. Ale nie mogę znaleźć żadnego rozwiązania, aby zmienić domyślny odstęp przed pierwszą sekcją.
W tej chwili mam ten kod:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
if (section == 0){
return 0;
}
return 10;
}
ios
uikit
tableview
uitableview
Circuitlego
źródło
źródło
Odpowiedzi:
Zwróć
CGFLOAT_MIN
zamiast 0 dla żądanej wysokości sekcji.Swift 3:
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { if section == 0 { return CGFloat.leastNormalMagnitude } return tableView.sectionHeaderHeight }
Szybki:
func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { if section == 0 { return CGFloat.min } return tableView.sectionHeaderHeight }
Obj-C:
- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { if (section == 0) return CGFLOAT_MIN; return tableView.sectionHeaderHeight; }
źródło
CGFloat.leastNormalMagnitude
estimatedHeightForHeaderInSection
, aplikacja ulegnie awarii.Jeśli używasz
tableView
stylu zgrupowanego ,tableView
automatycznie ustaw górne i dolne wstawki. Aby ich uniknąć i uniknąć wewnętrznego ustawienia wstawek, użyj metod delegatów dla nagłówka i stopki. Nigdy nie zwracaj 0.0 aleCGFLOAT_MIN
.Cel C
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { // Removes extra padding in Grouped style return CGFLOAT_MIN; } - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { // Removes extra padding in Grouped style return CGFLOAT_MIN; }
Szybki
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { // Removes extra padding in Grouped style return CGFloat.leastNormalMagnitude } func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { // Removes extra padding in Grouped style return CGFloat.leastNormalMagnitude }
źródło
viewForHeaderInSection
nagłówek całkowicie zniknął.Wygląda na to, że nie mogę ustawić widoku nagłówka tabeli z wysokością 0. W końcu wykonałem następujące czynności:
- (void)viewWillAppear:(BOOL)animated{ CGRect frame = self.tableView.tableHeaderView.frame; frame.size.height = 1; UIView *headerView = [[UIView alloc] initWithFrame:frame]; [self.tableView setTableHeaderView:headerView]; }
źródło
- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { return 1.0f; }
To zadziałało dla mnie w Swift 4 . Zmodyfikuj swój
UITableView
np. WviewDidLoad
:// Remove space between sections. tableView.sectionHeaderHeight = 0 tableView.sectionFooterHeight = 0 // Remove space at top and bottom of tableView. tableView.tableHeaderView = UIView(frame: CGRect(origin: .zero, size: CGSize(width: 0, height: CGFloat.leastNormalMagnitude))) tableView.tableFooterView = UIView(frame: CGRect(origin: .zero, size: CGSize(width: 0, height: CGFloat.leastNormalMagnitude)))
źródło
Możesz spróbować tego:
w
loadView
_tableView.sectionHeaderHeight = 0;
Następnie
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ return 0; }
Powinien zostać usunięty, o ile nie masz żadnych obiektów w nagłówku ...
A jeśli chcesz mieć jakiś rozmiar nagłówka sekcji, zmień tylko zwracaną wartość.
to samo, jeśli nie usuniesz stopki sekcji.
_tableView.sectionFooterHeight = 0;
i
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{ return 0; }
Cóż, to działa w przypadku moich problemów z widokiem tabeli w iOS7.
źródło
self.tableView.tableHeaderView = [UIView new];
Po dodaniu należy usunąć kod- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{ return CGFLOAT_MIN; }
źródło
footer
wysokość powoduje w moim przypadku problem. Dzięki za pomoc.możesz użyć
viewForHeaderInSection
i zwrócić widok o dowolnej wysokości.- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { int height = 30 //you can change the height if(section==0) { UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, height)]; return view; } }
źródło
W Swift 2.0
func tableView(tableView: UITableView, estimatedHeightForHeaderInSection section: Int) -> CGFloat { return yourHeight }
źródło
W Swift 4
Usuń dodatkowe górne wypełnienie w zgrupowanym widoku tabeli.
Tutaj wysokość jest podawana jako minimalna wysokość nagłówka sekcji, ponieważ nie możesz podać 0, ponieważ widok tabeli przyjmie domyślny górny margines, jeśli przypisano zerową wysokość.
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { return 1 } func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { return UIView() }
źródło
Przykład viewForHeaderInSection:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 118)]; view.backgroundColor = COLOR_DEFAULT; NSString* key = [self.tableKeys objectAtIndex:section]; NSArray *result = (NSArray*)[self.filteredTableData objectForKey:key]; SZTicketsResult *ticketResult = [result objectAtIndex:0]; UIView *smallColoredView = [[UIView alloc] initWithFrame:CGRectMake(0, 5, 320, 3)]; smallColoredView.backgroundColor = COLOR_DEFAULT_KOSTKY; [view addSubview:smallColoredView]; UIView *topBackgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 8, 320, 40)]; topBackgroundView.backgroundColor = [UIColor colorWithRed:255.0/255.0 green:248.0/255.0 blue:174.0/255.0 alpha:1]; [view addSubview:topBackgroundView]; UILabel *totalWinnings = [[UILabel alloc] initWithFrame:CGRectMake(10, 8, 300, 40)]; totalWinnings.text = ticketResult.message; totalWinnings.minimumFontSize = 10.0f; totalWinnings.numberOfLines = 0; totalWinnings.backgroundColor = [UIColor clearColor]; totalWinnings.font = [UIFont boldSystemFontOfSize:15.0f]; [view addSubview:totalWinnings]; UIView *bottomBackgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 55, 320, 58)]; bottomBackgroundView.backgroundColor = [UIColor colorWithRed:255.0/255.0 green:248.0/255.0 blue:174.0/255.0 alpha:1]; [view addSubview:bottomBackgroundView]; UILabel *numberOfDraw = [[UILabel alloc] initWithFrame:CGRectMake(10, 55, 290, 58)]; numberOfDraw.text = [NSString stringWithFormat:@"sometext %@",[ticketResult.title lowercaseString]];; numberOfDraw.minimumFontSize = 10.0f; numberOfDraw.numberOfLines = 0; numberOfDraw.backgroundColor = [UIColor clearColor]; numberOfDraw.font = [UIFont boldSystemFontOfSize:15.0f]; [view addSubview:numberOfDraw]; return view;
źródło