iOS UITableView HeaderView 추가하기 (섹션 헤더 아님)
연락처 앱과 같이 테이블 헤더 (섹션 헤더가 아닌)를 추가하고 싶습니다. 
정확히 위와 같습니다-표 위의 이미지 옆에있는 레이블.
모든보기를 스크롤 할 수 있기를 원하므로 테이블 외부에 배치 할 수 없습니다.
어떻게해야합니까?
UITableView이 tableHeaderView속성을. 원하는 뷰로 설정하십시오.
새 UIView컨테이너를 컨테이너로 사용하고 텍스트 레이블과 이미지보기를 새 항목 UIView에 추가 한 다음 tableHeaderView새보기 로 설정 하십시오.
예를 들어 UITableViewController:
-(void)viewDidLoad
{
// ...
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(XXX, YYY, XXX, YYY)];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(XXX, YYY, XXX, YYY)];
[headerView addSubview:imageView];
UILabel *labelView = [[UILabel alloc] initWithFrame:CGRectMake(XXX, YYY, XXX, YYY)];
[headerView addSubview:labelView];
self.tableView.tableHeaderView = headerView;
[imageView release];
[labelView release];
[headerView release];
// ...
}
Interface Builder에서 쉽게 할 수 있습니다. 테이블이있는 뷰를 만들고 다른 뷰를 테이블에 놓기 만하면됩니다. 테이블 헤더 뷰가됩니다. 해당보기에 레이블과 이미지를 추가하십시오. 뷰 계층에 대해서는 아래 그림을 참조하십시오.
에서 스위프트 :
override func viewDidLoad() {
super.viewDidLoad()
// We set the table view header.
let cellTableViewHeader = tableView.dequeueReusableCellWithIdentifier(TableViewController.tableViewHeaderCustomCellIdentifier) as! UITableViewCell
cellTableViewHeader.frame = CGRectMake(0, 0, self.tableView.bounds.width, self.heightCache[TableViewController.tableViewHeaderCustomCellIdentifier]!)
self.tableView.tableHeaderView = cellTableViewHeader
// We set the table view footer, just know that it will also remove extra cells from tableview.
let cellTableViewFooter = tableView.dequeueReusableCellWithIdentifier(TableViewController.tableViewFooterCustomCellIdentifier) as! UITableViewCell
cellTableViewFooter.frame = CGRectMake(0, 0, self.tableView.bounds.width, self.heightCache[TableViewController.tableViewFooterCustomCellIdentifier]!)
self.tableView.tableFooterView = cellTableViewFooter
}
You can also simply create ONLY a UIView in Interface builder and drag & drop the ImageView and UILabel (to make it look like your desired header) and then use that.
Once your UIView looks like the way you want it too, you can programmatically initialize it from the XIB and add to your UITableView. In other words, you dont have to design the ENTIRE table in IB. Just the headerView (this way the header view can be reused in other tables as well)
For example I have a custom UIView for one of my table headers. The view is managed by a xib file called "CustomHeaderView" and it is loaded into the table header using the following code in my UITableViewController subclass:
-(UIView *) customHeaderView {
if (!customHeaderView) {
[[NSBundle mainBundle] loadNibNamed:@"CustomHeaderView" owner:self options:nil];
}
return customHeaderView;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Set the CustomerHeaderView as the tables header view
self.tableView.tableHeaderView = self.customHeaderView;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0,0,tableView.frame.size.width,30)];
headerView.backgroundColor=[[UIColor redColor]colorWithAlphaComponent:0.5f];
headerView.layer.borderColor=[UIColor blackColor].CGColor;
headerView.layer.borderWidth=1.0f;
UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 5,100,20)];
headerLabel.textAlignment = NSTextAlignmentRight;
headerLabel.text = @"LeadCode ";
//headerLabel.textColor=[UIColor whiteColor];
headerLabel.backgroundColor = [UIColor clearColor];
[headerView addSubview:headerLabel];
UILabel *headerLabel1 = [[UILabel alloc] initWithFrame:CGRectMake(60, 0, headerView.frame.size.width-120.0, headerView.frame.size.height)];
headerLabel1.textAlignment = NSTextAlignmentRight;
headerLabel1.text = @"LeadName";
headerLabel.textColor=[UIColor whiteColor];
headerLabel1.backgroundColor = [UIColor clearColor];
[headerView addSubview:headerLabel1];
return headerView;
}
참고URL : https://stackoverflow.com/questions/5441938/adding-ios-uitableview-headerview-not-section-header
'IT' 카테고리의 다른 글
| Oracle 암호 만기를 끄려면 어떻게합니까? (0) | 2020.05.28 |
|---|---|
| jQuery의 $ .proxy () 이해 (0) | 2020.05.28 |
| POST 메소드를 사용하여 Swift의 HTTP 요청 (0) | 2020.05.28 |
| 리눅스에서 -exec 쉘 기능을 찾으십니까? (0) | 2020.05.27 |
| 자바 스크립트에서 캐시 지우기 (0) | 2020.05.27 |