IOS代码笔记之仿电子书书架效果
程序员文章站
2023-12-15 10:56:34
本文实例为大家分享了ios书架效果的具体实现代码,供大家参考,具体内容如下
一、效果图
二、工程图
三、代码
rootvie...
本文实例为大家分享了ios书架效果的具体实现代码,供大家参考,具体内容如下
一、效果图
二、工程图
三、代码
rootviewcontroller.h
#import <uikit/uikit.h> @interface rootviewcontroller : uiviewcontroller <uitableviewdatasource,uitableviewdelegate> { nsmutablearray * dataarray; uitableview * mytableview; } @end
rootviewcontroller.m
#import "rootviewcontroller.h" //cell #import "roottableviewcell.h" @interface rootviewcontroller () @end @implementation rootviewcontroller - (id)initwithnibname:(nsstring *)nibnameornil bundle:(nsbundle *)nibbundleornil { self = [super initwithnibname:nibnameornil bundle:nibbundleornil]; if (self) { // custom initialization } return self; } - (void)viewdidload { [super viewdidload]; // do any additional setup after loading the view. //初始化背景图 [self initbackgroundview]; } #pragma -mark -functions -(void)initbackgroundview { self.title=@"书架页面"; dataarray=[[nsmutablearray alloc]initwithobjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9", nil]; mytableview = [[uitableview alloc]initwithframe:cgrectmake(0, 0, 320, 416) style:uitableviewstyleplain]; mytableview.delegate = self; mytableview.datasource = self; [self.view addsubview:mytableview]; } #pragma -mark -uitableviewdelegate -(nsinteger)tableview:(uitableview *)tableview numberofrowsinsection:(nsinteger)section { return 3; } -(cgfloat)tableview:(uitableview *)tableview heightforrowatindexpath:(nsindexpath *)indexpath { return 376/3; } -(uitableviewcell*)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath { roottableviewcell * cell = [tableview dequeuereusablecellwithidentifier:@"id"]; if(cell == nil) { cell =[[roottableviewcell alloc]initwithstyle:uitableviewcellstylevalue1 reuseidentifier:@"id"]; } cell.tag = indexpath.row; [cell.bookleft addtarget:self action:@selector(buttonclick:) forcontrolevents:uicontroleventtouchupinside]; [cell.bookmiddle addtarget:self action:@selector(buttonclick:) forcontrolevents:uicontroleventtouchupinside]; [cell.bookright addtarget:self action:@selector(buttonclick:) forcontrolevents:uicontroleventtouchupinside]; [cell.bookleft setbackgroundimage:[uiimage imagenamed:[nsstring stringwithformat:@"%@.jpg",[dataarray objectatindex:indexpath.row*3]]] forstate:uicontrolstatenormal]; [cell.bookmiddle setbackgroundimage:[uiimage imagenamed:[nsstring stringwithformat:@"%@.jpg",[dataarray objectatindex:indexpath.row*3+1]]] forstate:uicontrolstatenormal]; [cell.bookright setbackgroundimage:[uiimage imagenamed:[nsstring stringwithformat:@"%@.jpg",[dataarray objectatindex:indexpath.row*3+2]]] forstate:uicontrolstatenormal]; nslog(@"--celll.tag--%ld",cell.tag); return cell; } #pragma -mark -doclickactions -(void)buttonclick:(uibutton*)btn { roottableviewcell * cell = (roottableviewcell *)[[btn superview] superview]; nsindexpath * path = [mytableview indexpathforcell:cell]; nslog(@"--点击图片的时候,所在的坐标-(%ld,%ld)--",path.row,btn.tag); } - (void)didreceivememorywarning { [super didreceivememorywarning]; // dispose of any resources that can be recreated. } @end
roottableviewcell.h
#import <uikit/uikit.h> @interface roottableviewcell : uitableviewcell @property(nonatomic,strong) uibutton * bookleft; @property(nonatomic,strong) uibutton * bookmiddle; @property(nonatomic,strong) uibutton * bookright; @end
roottableviewcell.m
#import "roottableviewcell.h" @implementation roottableviewcell @synthesize bookleft; @synthesize bookmiddle; @synthesize bookright; - (id)initwithstyle:(uitableviewcellstyle)style reuseidentifier:(nsstring *)reuseidentifier { self = [super initwithstyle:style reuseidentifier:reuseidentifier]; if (self) { // initialization code uiimageview * imageview= [[uiimageview alloc]initwithframe:cgrectmake(0, 0, 320, 416/3)]; imageview.image = [uiimage imagenamed:@"bookshelfcell.png"]; [self addsubview:imageview]; bookleft = [uibutton buttonwithtype:uibuttontypecustom]; bookleft.frame = cgrectmake(10, 10, 280/3, 376/3-20); bookleft.tag = 1; bookmiddle = [uibutton buttonwithtype:uibuttontypecustom]; bookmiddle.frame = cgrectmake(20+280/3, 10, 280/3, 376/3-20); bookmiddle.tag = 2; bookright = [uibutton buttonwithtype:uibuttontypecustom]; bookright.frame = cgrectmake(30+280/3*2, 10, 280/3, 376/3-20); bookright.tag = 3; [self addsubview:bookleft]; [self addsubview:bookmiddle]; [self addsubview:bookright]; } return self; }
大家还可以结合《ios模仿电子书首页实现书架布局样式》这篇文章进行学习。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。