그룹화 된 UITableView 헤더의 높이를 변경하는 방법은 무엇입니까?
표보기에서 섹션 머리글의 높이를 변경하는 방법을 알고 있습니다. 그러나 첫 번째 섹션 전에 기본 간격을 변경하는 해결책을 찾을 수 없습니다.
지금이 코드가 있습니다.
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
if (section == 0){
return 0;
}
return 10;
}
CGFLOAT_MIN
원하는 섹션 높이로 0 대신 반환 하십시오.
0을 반환하면 UITableView가 기본값을 사용합니다. 이것은 문서화되지 않은 동작입니다. 아주 작은 숫자를 반환하면 높이가 0 인 헤더를 효과적으로 얻을 수 있습니다.
스위프트 3 :
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
if section == 0 {
return CGFloat.leastNormalMagnitude
}
return tableView.sectionHeaderHeight
}
빠른:
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;
}
당신이 사용하는 경우 tableView
스타일 그룹화 , tableView
자동으로 설정 상단과 하단 세트를. 이를 방지하고 내부 삽입 설정을 방지하려면 머리글 및 바닥 글에 대리자 메서드를 사용하십시오. 0.0을 반환하지 않고CGFLOAT_MIN
.
목표 -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;
}
빠른
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
}
It appears that I can't set a table header view with height of 0. I ended up doing the following:
- (void)viewWillAppear:(BOOL)animated{
CGRect frame = self.tableView.tableHeaderView.frame;
frame.size.height = 1;
UIView *headerView = [[UIView alloc] initWithFrame:frame];
[self.tableView setTableHeaderView:headerView];
}
This worked for me with Swift 4. Modify your UITableView
e.g. in viewDidLoad
:
// 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)))
You can try this:
In the loadView
_tableView.sectionHeaderHeight = 0;
Then
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return 0;
}
It should be removed as long as you do not have any objects in the header...
And if you want some size of the sectionheader, then change only the return value.
same if you do not get the sectionfooter removed.
_tableView.sectionFooterHeight = 0;
and
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
return 0;
}
Well, this works for my problems with the tableview in the iOS7.
You should remove the code self.tableView.tableHeaderView = [UIView new];
after you add
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
return CGFLOAT_MIN;
}
you can use viewForHeaderInSection
and return a view with any height.
- (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;
}
}
In swift 2.0
func tableView(tableView: UITableView, estimatedHeightForHeaderInSection section: Int) -> CGFloat {
return yourHeight
}
In Swift 4
Remove extra top padding in grouped tableview.
여기서 높이는 0을 지정하면 tableview가 기본 상단 여백을 사용하므로 0을 제공 할 수 없기 때문에 섹션 헤더의 최소 높이로 1이 제공됩니다.
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 1
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
return UIView()
}
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;
참고 URL : https://stackoverflow.com/questions/17699831/how-to-change-height-of-grouped-uitableview-header
'Program Tip' 카테고리의 다른 글
Vim에서 remap, noremap, nnoremap 및 vnoremap 매핑 명령의 차이점은 무엇입니까? (0) | 2020.09.27 |
---|---|
선호하는 Bash shebang은 무엇입니까? (0) | 2020.09.27 |
자바에서 '외부'IP 주소 얻기 (0) | 2020.09.25 |
Xcode의 Organizer에서 앱을 제거하려면 어떻게해야합니까? (0) | 2020.09.25 |
레일이 생산 중인지 어떻게 알 수 있습니까? (0) | 2020.09.25 |