iOS开发中tableViewCell的悬浮效果

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

其实很早就想写博客了,只是感觉自己的技术不行,写出来的东西技术性不强,写出来也没什么用,不过后来想想,写写博客记录开发中遇到的问题也不错....

今天我想写的是tableView的悬浮效果,因为我们公司最近在开发社区,就是和百度贴吧类似的,嵌套在应用中,而其中关于每一个的帖子要像这种效果

开始是做不出这种效果,就直接写个tableView算了,后来跟问了下做安卓的那边,原来是阴影的效果...

说到这里,相信好多同学都知道,好吧,我们开始上代码,首先是创建tableView,这个就不用多说了吧,这是创建tableView的.m文件

#import"ViewController.h"#import"DemoCell.h"//屏幕宽度#defineSCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)//屏幕高度#defineSCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height)@interfaceViewController () <UITableViewDataSource,UITableViewDelegate>@PRoperty (nonatomic,strong)UITableView*tableView;

@property (nonatomic,assign)CGFloat height;@end@implementationViewController- (void)viewDidLoad {

[super viewDidLoad];

[self createTabelView];

}- (void)createTabelView{

self.tableView= [[UITableView alloc] initWithFrame:CGRectMake(0,20, SCREEN_WIDTH, SCREEN_HEIGHT-20) style:UITableViewStylePlain];

self.tableView.delegate=self;

self.tableView.dataSource=self;

self.tableView.separatorStyle=UITableViewCellSeparatorStyleNone;

[self.view addSubview:self.tableView];

}- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{return5;

}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{//注意重用staticNSString *cellId =@"cell";

DemoCell*cell =[tableView dequeueReusableCellWithIdentifier:cellId];if(cell ==nil){

cell=[[DemoCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId];

}returncell;

}- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

}- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{return[DemoCell getHeight] +10;

}@end

然后是自定义cell,自定义cell要注意因为要写出悬浮效果,所以我想的是给Cell加一层View,这个View的frame比Cell的contentView小一圈,在设置边框的阴影,就能写出悬浮效果了,这是自定义Cell的.m文件

#import"DemoCell.h"#defineSCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)#defineSCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height)@interfaceDemoCell()

@property (nonatomic,strong)UIView*bgView;@end@implementationDemoCell- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{if(self =[super initWithStyle:style reuseIdentifier:reuseIdentifier]){

[self createUI];

}returnself;

}//重点在这里- (void)createUI{//创建一个UIView比self.contentView小一圈self.bgView = [[UIView alloc] initWithFrame:CGRectMake(10,5, SCREEN_WIDTH -20,100)];

self.bgView.backgroundColor=[UIColor whiteColor];//给bgView边框设置阴影self.bgView.layer.shadowOffset = CGSizeMake(1,1);

self.bgView.layer.shadowOpacity=0.3;

self.bgView.layer.shadowColor=[UIColor blackColor].CGColor;

[self.contentView addSubview:self.bgView];

}+(CGFloat)getHeight{//在这里能计算高度,动态调整return100;

}@end

运行起来的效果图,是不是棒棒哒

结束,第一篇博客就写到这里了,就算没人看(还是希望有人看的),我也会写下去的哦...

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航