iOS開發中tableViewCell的懸浮效果,iostableviewcell

來源:互聯網
上載者:User

iOS開發中tableViewCell的懸浮效果,iostableviewcell

其實很早就想寫部落格了,只是感覺自己的技術不行,寫出來的東西技術性不強,寫出來也沒什麼用,不過後來想想,寫寫部落格記錄開發中遇到的問題也不錯....

今天我想寫的是tableView的懸浮效果,因為我們公司最近在開發社區,就是和百度貼吧類似的,嵌套在應用中,而其中關於每一個的文章要像這種效果

開始是做不出這種效果,就直接寫個tableView算了,後來跟問了下做安卓的那邊,原來是陰影的效果...

說到這裡,相信好多同學都知道,好吧,我們開始上代碼,首先是建立tableView,這個就不用多說了吧,這是建立tableView的.m檔案

#import "ViewController.h"#import "DemoCell.h"//螢幕寬度#define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)//螢幕高度#define SCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height)@interface ViewController () <UITableViewDataSource,UITableViewDelegate>@property (nonatomic,strong)UITableView *tableView;@property (nonatomic,assign)CGFloat height;@end@implementation ViewController- (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{    return 5;}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{    //注意重用    static NSString *cellId = @"cell";    DemoCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];    if(cell == nil){        cell = [[DemoCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId];    }    return cell;}- (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"#define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)#define SCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height) @interface DemoCell()@property (nonatomic,strong)UIView *bgView;@end@implementation DemoCell- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{    if(self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]){        [self createUI];    }    return self;}//重點在這裡- (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{    //在這裡能計算高度,動態調整    return 100;}@end

運行起來的,是不是棒棒噠

 結束,第一篇部落格就寫到這裡了,就算沒人看(還是希望有人看的),我也會寫下去的哦...

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.