Tùy chỉnh phần tiêu đề UITableView


141

Tôi muốn tùy chỉnh UITableViewtiêu đề cho mỗi phần. Cho đến nay, tôi đã thực hiện

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

UITabelViewDelegatephương pháp này . Những gì tôi muốn làm là để có được tiêu đề hiện tại cho mỗi phần và chỉ cần thêm UILabeldưới dạng một khung nhìn phụ.

Cho đến nay, tôi không thể thực hiện được điều đó. Bởi vì, tôi không thể tìm thấy bất cứ điều gì để có được tiêu đề phần mặc định. Câu hỏi đầu tiên, có cách nào để có được tiêu đề phần mặc định ?

Nếu không thể, tôi cần tạo chế độ xem vùng chứa, UIViewnhưng lần này tôi cần đặt màu nền mặc định, màu bóng, v.v. Bởi vì, nếu bạn nhìn kỹ vào tiêu đề của phần, nó đã được tùy chỉnh.

Làm cách nào tôi có thể nhận các giá trị mặc định này cho mỗi tiêu đề của phần?

Cảm ơn tất cả.


1
Có gì sai khi sử dụng tableView:titleForHeaderInSection:?
mượn

Nó trả về a NSString, tôi cần đặt phông chữ tùy chỉnh, vì vậy tôi không thể sử dụngtableView:titleForHeaderInSection:
limon

Hoặc bạn có thể sử dụng hình ảnh để bắt chước các tiêu đề phần mặc định. teehanlax.com/blog/ios-6-gui-sheet-iphone-5
Desdenova

@limon: Cách triển khai phần tiêu đề: stackoverflow.com/a/32261262/1456385
nông. Nghĩ

Câu trả lời:


288

Bạn có thể thử điều này:

 -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 18)];
    /* Create custom view to display section header... */
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 5, tableView.frame.size.width, 18)];
    [label setFont:[UIFont boldSystemFontOfSize:12]];
     NSString *string =[list objectAtIndex:section];
    /* Section header is in 0th index... */
    [label setText:string];
    [view addSubview:label];
    [view setBackgroundColor:[UIColor colorWithRed:166/255.0 green:177/255.0 blue:186/255.0 alpha:1.0]]; //your background color...
    return view;
}

đó là màu bg của bạn dù bạn muốn đặt màu gì
Lochana Ragupathy 25/03/13

Đó là vấn đề, tôi đã thực hiện những gì bạn đã viết. Nhưng, tôi không biết màu nền mặc định của tiêu đề phần, đó là loại màu xám. Nhưng, tôi cần nó là tiêu đề phần chính xác mặc định.
limon

15
này, hãy sử dụng máy đo màu kỹ thuật số
Lochana Ragupathy 25/03/13

đảm bảo đặt cả màu nền của UILabel. Tôi biết tôi đã hơi bối rối khi nền tảng của tôi không rõ ràng cho tôi.
shulmey

3
danh sách trong dòng NSString * string = [list objectAt Index: phần]; bất cứ ai cũng có thể cho tôi biết
Nisha Gupta

45

Câu trả lời được chọn sử dụng tableView :viewForHeaderInSection:là chính xác.

Chỉ để chia sẻ một mẹo ở đây.

Nếu bạn đang sử dụng bảng phân cảnh / xib, thì bạn có thể tạo một ô nguyên mẫu khác và sử dụng nó cho "ô mục". Mã để định cấu hình tiêu đề tương tự như cách bạn định cấu hình cho các ô hàng.

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    static NSString *HeaderCellIdentifier = @"Header";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:HeaderCellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:HeaderCellIdentifier];
    }

    // Configure the cell title etc
    [self configureHeaderCell:cell inSection:section];

    return cell;
}

14
có một số điều sai với giải pháp này. Đầu tiên, đó là thực tế là nếu bạn triển khai "tableView (tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool", bạn sẽ nhận thấy rằng tiêu đề của phần sẽ di chuyển cùng với hàng khi bạn trượt. Để tránh điều này, bạn phải trả lại cell.contentView thay thế. Vấn đề lớn hơn là với giải pháp này, ứng dụng sẽ bị sập khi bạn nhấn và giữ tiêu đề phần. Cách chính xác là tạo một ngòi mở rộng UITableViewHeaderFooterView, đăng ký nó với bảng xem và trả về trong phương thức này. Đã thử nghiệm trên iOS8
Kachi

@Kachi Giải pháp được sử dụng viewForHeaderInSectionkhông canEditRowAtIndexPathnhư bạn đã đề cập. Tôi không bao giờ xác minh sự cố mà bạn nói, nhưng bạn có thể ngộ ra một báo chí dài sẽ gây ra sự cố như thế nào không?
lấy mẫu vào

1
Điều tôi muốn nói là nếu bạn triển khai giải pháp này VÀ triển khai canEditRowAtIndexPath, bạn sẽ thấy tiêu đề cũng sẽ trượt với hàng trên cùng mà bạn đang xóa nếu bạn không trả về cell.contentView. Xem bài đăng SO này: stackoverflow.com/questions/26009722/ Từ Báo chí dài gây ra sự cố vì một tin nhắn cố gắng được gửi đến một đối tượng bị hủy. Xem bài đăng SO này: stackoverflow.com/questions/27622290/ từ
Kachi

1
Vui lòng không bao giờ sử dụng UITableViewCelllàm chế độ xem tiêu đề. Bạn sẽ rất khó để gỡ lỗi các trục trặc hình ảnh - tiêu đề đôi khi sẽ biến mất vì cách các tế bào bị mất hiệu lực và bạn sẽ tìm kiếm hàng giờ tại sao điều đó cho đến khi bạn nhận ra UITableViewCellkhông thuộc về UITableViewtiêu đề.
raven_raven

Sử dụng UITableViewCellnhư một tiêu đề đơn giản là sai.
Alex Zavatone

31

Phiên bản Swift của Lochana Tejas trả lời:

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    let view = UIView(frame: CGRectMake(0, 0, tableView.frame.size.width, 18))
    let label = UILabel(frame: CGRectMake(10, 5, tableView.frame.size.width, 18))
    label.font = UIFont.systemFontOfSize(14)
    label.text = list.objectAtIndex(indexPath.row) as! String
    view.addSubview(label)
    view.backgroundColor = UIColor.grayColor() // Set your background color

    return view
}

1
Làm thế nào để làm cho chiều cao nhãn động theo văn bản bên trong chế độ xem?
Pratik Shah

Các overridetừ khóa là dư thừa. Hơn thế nữa, hãy xem xét sử dụng lại các chế độ xem tiêu đề thay vì tạo lại chúng.
Vadim Bulavin

17

Nếu bạn sử dụng chế độ xem tiêu đề mặc định, bạn chỉ có thể thay đổi văn bản trên đó bằng

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

Dành cho Swift:

override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {

Nếu bạn muốn tùy chỉnh chế độ xem, bạn cần tự tạo một chế độ xem mới.


10

Tại sao không sử dụng UITableViewHeaderFooterView ?


Bạn chỉ có thể sử dụng điều này nếu bạn cũng không sử dụng - (UIView *) tableView: (UITableView *) tableView viewForHeaderInSection: (NSInteger).
SAHM

1
Câu trả lời hoàn toàn hợp lệ. Ngoài ra, sử dụng các lợi ích của UITableViewHeaderFooterView từ việc tái chế chế độ xem giống như các ô.
Gregzo

6
@dmarsi Tôi không tìm thấy bằng chứng nào về việc họ bị phản đối.
Fawkes

8

Nếu headerInSection không hiển thị, có thể thử điều này.

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    return 45;
}

Điều này trả về một chiều cao cho tiêu đề của một phần nhất định.


1
Tâm xây dựng câu trả lời của bạn?
Quay phim

Phần tiêu đề sẽ không hiển thị trừ khi bạn chỉ định bằng phương thức móc 'chiều cao' của tiêu đề phần. UITableView mặc định không hiển thị các tiêu đề nếu không chỉ định chiều cao. @CinCout
theprojectabot

6

Swift 3 phiên bản của lochana và estemendoza trả lời:

override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

    let view = UIView(frame: CGRect(x:0, y:0, width:tableView.frame.size.width, height:18))
    let label = UILabel(frame: CGRect(x:10, y:5, width:tableView.frame.size.width, height:18))
    label.font = UIFont.systemFont(ofSize: 14)
    label.text = "This is a test";
    view.addSubview(label);
    view.backgroundColor = UIColor.gray;
    return view

}

Ngoài ra, hãy lưu ý rằng bạn C haveNG phải thực hiện:

override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return 100;
}

5

Thử cái này......

override func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) 
{
    // Background view is at index 0, content view at index 1
    if let bgView = view.subviews[0] as? UIView
    {
        // do your stuff
    }

    view.layer.borderColor = UIColor.magentaColor().CGColor
    view.layer.borderWidth = 1
}

5

Các câu trả lời khác thực hiện tốt công việc tạo lại chế độ xem tiêu đề mặc định, nhưng thực tế không trả lời câu hỏi chính của bạn:

Có cách nào để có được tiêu đề phần mặc định?

Có một cách - chỉ cần thực hiện tableView:willDisplayHeaderView:forSection:trong đại biểu của bạn. Chế độ xem tiêu đề mặc định sẽ được chuyển vào tham số thứ hai và từ đó bạn có thể chuyển nó sang tham sốUITableViewHeaderFooterView rồi thêm / thay đổi các cuộc phỏng vấn theo ý muốn.

Obj-C

- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{
    UITableViewHeaderFooterView *headerView = (UITableViewHeaderFooterView *)view;

    // Do whatever with the header view... e.g.
    // headerView.textLabel.textColor = [UIColor whiteColor]
}

Nhanh

override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int)
{
    let headerView = view as! UITableViewHeaderFooterView

    // Do whatever with the header view... e.g.
    // headerView.textLabel?.textColor = UIColor.white
}

Bạn không cần phải đúc nó. Bạn chỉ có thể thêm những gì bạn muốn vào xem. Trong thực tế, việc tạo một đối tượng mới sẽ không làm gì trừ khi bạn gán nó cho view.
Alex Zavatone

@AlexZavatone Đúng vậy, bạn không cần bỏ nó nếu bạn chỉ thêm lượt xem. Thật hữu ích nếu bạn muốn tùy chỉnh một số chế độ xem mặc định như nhãn văn bản.
Craig Brown

4
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    //put your values, this is part of my code
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 30.0f)];
    [view setBackgroundColor:[UIColor redColor]];
    UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(20, 5, 150, 20)];
    [lbl setFont:[UIFont systemFontOfSize:18]];
    [lbl setTextColor:[UIColor blueColor]];
    [view addSubview:lbl];

    [lbl setText:[NSString stringWithFormat:@"Section: %ld",(long)section]];

    return view;
}

4

Đây là giải pháp dễ nhất có thể. Đoạn mã sau có thể được sử dụng trực tiếp để tạo tiêu đề phần tùy chỉnh.

 -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    SectionHeaderTableViewCell *headerView = [tableView dequeueReusableCellWithIdentifier:@"sectionHeader"];

    //For creating a drop menu of rows from the section
    //==THIS IS JUST AN EXAMPLE. YOU CAN REMOVE THIS IF-ELSE.==
    if (![self.sectionCollapsedArray[section] boolValue])
    {
        headerView.imageView.image = [UIImage imageNamed:@"up_icon"];
    }
    else
    {
        headerView.imageView.image = [UIImage imageNamed:@"drop_icon"];
    }

    //For button action inside the custom cell
    headerView.dropButton.tag = section;
    [headerView.dropButton addTarget:self action:@selector(sectionTapped:) forControlEvents:UIControlEventTouchUpInside];

    //For removing long touch gestures.
    for (UIGestureRecognizer *recognizer in headerView.contentView.gestureRecognizers)
    {
        [headerView.contentView removeGestureRecognizer:recognizer];
        [headerView removeGestureRecognizer:recognizer];
    }

    return headerView.contentView;
}

LƯU Ý: MụcHeaderTableViewCell là một UITableViewCell tùy chỉnh được tạo trong Storyboard.


MụcHeaderTableViewCell - sử dụng số nhận dạng chưa được khai báo
Boris Gafurov

@BorisGafurov MụcHeaderTableViewCell chỉ là một tên ví dụ mà tôi đã đặt cho UITableViewCell của mình, mà tôi đã tạo trong bảng phân cảnh.
Anish Kumar

2

Nếu tôi là bạn, tôi sẽ tạo một phương thức trả về một UIView được cung cấp NSString để chứa. Ví dụ

+ (UIView *) sectionViewWithTitle:(NSString *)title;

Trong quá trình thực hiện phương thức này, hãy tạo một UIView, thêm một UILabel cho nó với các thuộc tính bạn muốn đặt và dĩ nhiên đặt tiêu đề của nó thành một cái đã cho.


Vâng, tôi có thể làm điều đó, nhưng câu hỏi của tôi là làm thế nào tôi có thể có được nền tiêu đề phần mặc định, giá trị bóng, phần còn lại rất dễ thực hiện.
limon

Bạn có ý nghĩa gì với nền tiêu đề phần mặc định
Lochana Ragupathy 25/03/13

1
Chà, dễ nhất là sử dụng ứng dụng Máy đo màu kỹ thuật số để có được màu bạn muốn. Lấy chúng bằng mã sẽ rất khó, theo như tôi có thể nói ...
cpprulez

2

@ samwize 'giải pháp trong Swift (vì vậy hãy ủng hộ anh ấy!). Rực rỡ sử dụng cùng một cơ chế tái chế cho các phần đầu trang / chân trang:

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    let settingsHeaderSectionCell:SettingsHeaderSectionCell = self.dequeueReusableCell(withIdentifier: "SettingsHeaderSectionCell") as! SettingsHeaderSectionCell

    return settingsHeaderSectionCell
}

2
- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{
    if([view isKindOfClass:[UITableViewHeaderFooterView class]]){

        UITableViewHeaderFooterView *headerView = view;

        [[headerView textLabel] setTextColor:[UIColor colorWithHexString:@"666666"]];
        [[headerView textLabel] setFont:[UIFont fontWithName:@"fontname" size:10]];
    }
}

Nếu bạn muốn thay đổi phông chữ của nhãn văn bản trong tiêu đề phần của bạn, bạn muốn làm điều đó trong willDisplayHeaderView. Để đặt văn bản, bạn có thể thực hiện nó trong viewForHeaderInSection hoặc titleForHeaderInSection. Chúc may mắn!


2

Ví dụ đầy đủ 2019 để sao chép và dán

Đầu tiên đặt "Được nhóm" trên bảng phân cảnh: nó phải xảy ra vào thời điểm init, bạn không thể thực sự đặt nó sau, vì vậy việc ghi nhớ trên bảng phân cảnh sẽ dễ dàng hơn:

nhập mô tả hình ảnh ở đây

Kế tiếp,

Phải triển khai heightForHeaderInSection do lỗi của Apple.

func tableView(_ tableView: UITableView,
                   heightForHeaderInSection section: Int) -> CGFloat {
    return CGFloat(70.0)
}

Vẫn còn một lỗi của Apple - trong mười năm nay - nơi đơn giản là nó sẽ không hiển thị tiêu đề đầu tiên (tức là chỉ số 0) nếu bạn không có heightForHeaderInSection cuộc gọi.

Vì vậy, tableView.sectionHeaderHeight = 70đơn giản là không hoạt động, nó bị hỏng .

Đặt khung không đạt được gì:

Trong viewForHeaderInSection cần tạo một UIView ().

Sẽ là vô nghĩa / không đạt được gì nếu bạn UIView (khung ...) vì iOS chỉ đơn giản đặt kích thước của chế độ xem như được xác định bởi bảng.

Vì vậy, dòng đầu tiên viewForHeaderInSectionsẽ đơn giản let view = UIView()và đó là quan điểm bạn quay lại.

func tableView(_ tableView: UITableView,
                       viewForHeaderInSection section: Int) -> UIView? {
    let view = UIView()
    
    let l = UILabel()
    view.addSubview(l)
    l.bindEdgesToSuperview()
    l.backgroundColor = .systemOrange
    l.font = UIFont.systemFont(ofSize: 15)
    l.textColor = .yourClientsFavoriteColor
    
    switch section {
    case 0:
        l.text =  "First section on screen"
    case 1:
        l.text =  "Here's the second section"
    default:
        l.text =  ""
    }
    
    return view
}

Đó là nó - bất cứ điều gì khác là một sự lãng phí thời gian.

Một vấn đề "cầu kỳ" khác của Apple.


Tiện ích mở rộng tiện lợi được sử dụng ở trên là:

extension UIView {
    
    // incredibly useful:
    
    func bindEdgesToSuperview() {
        
        guard let s = superview else {
            preconditionFailure("`superview` nil in bindEdgesToSuperview")
        }
        
        translatesAutoresizingMaskIntoConstraints = false
        leadingAnchor.constraint(equalTo: s.leadingAnchor).isActive = true
        trailingAnchor.constraint(equalTo: s.trailingAnchor).isActive = true
        topAnchor.constraint(equalTo: s.topAnchor).isActive = true
        bottomAnchor.constraint(equalTo: s.bottomAnchor).isActive = true
    }
}

1

Tuyệt vời thêm tiêu đề xem bảng trong swift

Gần đây tôi đã thử điều này.

Tôi cần một và chỉ một tiêu đề trong toàn bộ UITableView.

Giống như tôi muốn có một UIImageView trên đỉnh của TableView. Vì vậy, tôi đã thêm một UIImageView trên đầu UITableViewCell và tự động nó được thêm dưới dạng bảngViewHeader. Bây giờ tôi kết nối ImageView với ViewContoder và thêm Image.

Tôi đã bối rối vì lần đầu tiên tôi đã làm một cái gì đó như thế này. Vì vậy, để xóa sự nhầm lẫn của tôi, hãy mở định dạng xml của MainStoryBoard và tìm thấy Chế độ xem hình ảnh đã được thêm làm tiêu đề.

Nó làm việc cho tôi. Cảm ơn xCode và nhanh chóng.


1

gọi phương thức đại biểu này

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{

return @"Some Title";
}

điều này sẽ tạo cơ hội để tự động thêm tiêu đề mặc định với tiêu đề động.

Bạn có thể sử dụng tiêu đề / chân trang có thể tái sử dụng và tùy chỉnh.

https://github.com/sourov2008/UITableViewCustomHeaderFooterSection


1

swif 4.2

override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
    guard let header = view as? UITableViewHeaderFooterView else { return }

    header.textLabel?.textAlignment = .center // for all sections

    switch section {
    case 1:  //only section No.1
        header.textLabel?.textColor = .black
    case 3:  //only section No.3
        header.textLabel?.textColor = .red
    default: //
        header.textLabel?.textColor = .yellow
    }
}


0

Nếu bạn chỉ muốn thêm tiêu đề vào tiêu đề bảngView, đừng thêm chế độ xem. Trong swift 3.x mã đi như thế này:

override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
    var lblStr = ""
    if section == 0 {
        lblStr = "Some String 1"
    }
    else if section == 1{
        lblStr = "Some String 2"
    }
    else{
        lblStr = "Some String 3"
    }
    return lblStr
}

Bạn có thể triển khai một mảng để lấy tiêu đề cho các tiêu đề.


0

Quay trở lại câu hỏi ban đầu (4 năm sau), thay vì xây dựng lại tiêu đề phần của riêng bạn, iOS có thể chỉ cần gọi cho bạn (với willDisplayHeaderView: forSection :) ngay sau khi được xây dựng mặc định. Ví dụ: tôi muốn thêm một nút biểu đồ ở cạnh phải của tiêu đề phần:

- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section {
    UITableViewHeaderFooterView * header = (UITableViewHeaderFooterView *) view;
    if (header.contentView.subviews.count >  0) return; //in case of reuse
    CGFloat rightEdge = CGRectGetMaxX(header.contentView.bounds);
    UIButton * button = [[UIButton alloc] initWithFrame:CGRectMake(rightEdge - 44, 0, 44, CGRectGetMaxY(header.contentView.bounds))];
    [button setBackgroundImage:[UIImage imageNamed:@"graphIcon"] forState:UIControlStateNormal];
    [button addTarget:self action:@selector(graphButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
    [view addSubview:button];
}

0

Sử dụng tableView: willDisplayHeaderView:để tùy chỉnh chế độ xem khi nó sắp được hiển thị.

Điều này mang lại cho bạn lợi thế là có thể lấy chế độ xem đã được tạo cho chế độ xem tiêu đề và mở rộng nó, thay vì phải tự tạo lại toàn bộ chế độ xem tiêu đề.

Dưới đây là một ví dụ tô màu phần tiêu đề dựa trên BOOL và thêm phần tử văn bản chi tiết vào tiêu đề.

- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{
//    view.tintColor = [UIColor colorWithWhite:0.825 alpha:1.0]; // gray
//    view.tintColor = [UIColor colorWithRed:0.825 green:0.725 blue:0.725 alpha:1.0]; // reddish
//    view.tintColor = [UIColor colorWithRed:0.925 green:0.725 blue:0.725 alpha:1.0]; // pink

    // Conditionally tint the header view
    BOOL isMyThingOnOrOff = [self isMyThingOnOrOff];

    if (isMyThingOnOrOff) {
        view.tintColor = [UIColor colorWithRed:0.725 green:0.925 blue:0.725 alpha:1.0];
    } else {
        view.tintColor = [UIColor colorWithRed:0.925 green:0.725 blue:0.725 alpha:1.0];
    }

    /* Add a detail text label (which has its own view to the section header… */
    CGFloat xOrigin = 100; // arbitrary
    CGFloat hInset = 20;
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(xOrigin + hInset, 5, tableView.frame.size.width - xOrigin - (hInset * 2), 22)];

    label.textAlignment = NSTextAlignmentRight;

    [label setFont:[UIFont fontWithName:@"Helvetica-Bold" size:14.0]
    label.text = @"Hi.  I'm the detail text";

    [view addSubview:label];
}

0

Swift 4.2

Trong Swift 4.2, tên của bảng có một chút thay đổi.

    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let view = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: 18))
        let label = UILabel(frame: CGRect(x: 10, y: 5, width: tableView.frame.size.width, height: 18))
        label.font = UIFont.systemFont(ofSize: 14)
        label.text = list.objectAtIndex(section) as! String
        view.addSubview(label)
        view.backgroundColor = UIColor.gray // Set your background color

        return view
    }
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.