自定义tableView视图

1.在xib(此处是子窗口)窗口视图中新增一个TableView控件

自定义tableView视图_第1张图片


2.ctl+左键,将tableView控件关联到m文件的interface中。需要注意的有:

(1)默认.m文件中无interface接口,需要手动添加 

(2)点击xib文件,需要在右边栏的custom class中选择关联类为MusicListView类,不然无法关联。

自定义tableView视图_第2张图片   自定义tableView视图_第3张图片


3.自定义tableCell类:新建一个Cocoa touch类,取名MusicCell,注意父类要基于TableView,并勾选xib选项。

自定义tableView视图_第4张图片  自定义tableView视图_第5张图片


4.在新建的MusicCell.xib中增加需要的控件,这里有2个label控件和1个ImageView控件。注意的是,需要在右边栏中将identifier改为自定义的名字,如CellId,因为后续代码需要使用该名。



5.在h文件中设置委托,在m文件中完成TablelView的事件处理

#import <UIKit/UIKit.h>

//@interface MusicListView : UIView

@interface MusicListView : UIView <UITableViewDelegate, UITableViewDataSource>
// 设置代理,设置tableView行数等信息

@end
<pre name="code" class="objc">//
//  MusicListView.m

#import "MusicListView.h"
#import "MusicCell.h"   // 引入自定义Cell类

/* 新增interface接口 */

@interface MusicListView ()

@property (strong, nonatomic) IBOutlet UITableView *MusicTableView;


@end


@implementation MusicListView

// 当xib加载完就调用方法
- (void) awakeFromNib
{
    // 设置代理本身
    _MusicTableView.delegate = self;
    _MusicTableView.dataSource = self;
}


#pragma mark --UITableViewDelegate&UITableViewDataSource

// TableView有多少行
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 10;
}

// 设置行高
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPathå
{
    return 60;
}

// 每行显示什么样子
- (MusicCell *) tableView: (UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellID = @"CellId"; // 这里填写的就是MusicCell.xib中的标示符
    
    // 先从队列里面查找是否有可以重复利用的cell
    MusicCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
    if (cell == nil)
    {
        // 没有就加载MusicCell.xib资源
        cell = [[[NSBundle mainBundle] loadNibNamed: @"MusicCell" owner:nil options:nil] lastObject];
    }
    return cell;
}

@end


 
 


6,在各个视图中设置视图为透明显示

自定义tableView视图_第6张图片    (注意右边栏的视图是View)

  (注意右边栏的视图是TableView)


7,运行代码,结果显示

自定义tableView视图_第7张图片


8,将控件自带的分割线更换为自定义横线:选择table view控件,将style的属性default修改为None.然后增加一个ImageView控件,导入一个图片。

  自定义tableView视图_第8张图片


9,再次执行,结果:

自定义tableView视图_第9张图片  自定义tableView视图_第10张图片

 

你可能感兴趣的:(自定义tableView视图)