一,效果图。

二,工程图。

三,代码。

ReaderViewController.h

#import <UIKit/UIKit.h>

@interface ReaderViewController : UIViewController
<UIScrollViewDelegate>
{
UIScrollView *scrollView;
}
@property(nonatomic,strong) UIScrollView *scrollView;;
-(void)add;
-(void)dele;
-(void)reloadView; @end

ReaderViewController.m

#import "ReaderViewController.h"

#define ImageHeight 120
static int num = 0; @interface ReaderViewController () @end @implementation ReaderViewController - (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.navigationController.navigationBar.tintColor = [UIColor colorWithRed:248.0/255.0 green:172.0/255.0 blue:37.0/255.0 alpha:1.0];
//导航栏背景图
[self addBackgroundView:@"1.png"]; //左侧删除按钮
UIBarButtonItem *rightBarButton = [[UIBarButtonItem alloc]
initWithTitle:@"delete"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(dele)];
//右侧增加按钮
UIBarButtonItem *leftBarButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
target:self
action:@selector(add)]; self.navigationItem.rightBarButtonItem = rightBarButton;
self.navigationItem.leftBarButtonItem = leftBarButton; //scrollerView
scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 416)];
scrollView.contentSize=CGSizeMake(320,480); //设置背景颜色
UIImage *backimg=[UIImage imageNamed:@"3.png"];
UIImageView *backview=[[UIImageView alloc] initWithImage:backimg];
backview.frame=CGRectMake(0, 0, 320, 480);
[self.view addSubview:backview]; [self.view addSubview:scrollView];
//重新刷新界面
[self reloadView]; }
//导航栏上标题
-(void)addBackgroundView:(NSString*)image{ UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:image]];
imgView.frame = CGRectMake(0, 0, 320, 44);
[self.navigationController.navigationBar addSubview: imgView]; UILabel *title = [[UILabel alloc] initWithFrame:CGRectMake((320-150)/2, 0, 150, 44)];
[title setText:@"书架"];
[title setTextColor:[UIColor whiteColor]];
[title setTextAlignment:NSTextAlignmentCenter];
[title setShadowColor:[UIColor grayColor]];
[title setBackgroundColor:[UIColor clearColor]];
[title setFont:[UIFont boldSystemFontOfSize:20.0]];
[self.navigationController.navigationBar addSubview:title];
} //添加一个书架
-(void)add{ num++; UIImage *backimg=[UIImage imageNamed:@"2.png"];
UIImageView *backview=[[UIImageView alloc] initWithImage:backimg];
backview.frame=CGRectMake(0, (num-1)*ImageHeight, 320, ImageHeight);
backview.tag = num+100; [scrollView addSubview:backview]; if (num>3) {
scrollView.contentSize=CGSizeMake(320,num*ImageHeight);
}
} //删除一个书架
-(void)dele{ if (num<=0) {
return;
} for (UIView *view in scrollView.subviews) {
if(view.tag == (num+100))
[view removeFromSuperview];
} num--; if (num>3) {
scrollView.contentSize=CGSizeMake(320,num*ImageHeight);
} } //主界面初始化
-(void)reloadView{ NSLog(@"reloadView");
//遍历当前界面的所有子界面,把子界面删除干净
for(UIView *view in scrollView.subviews){
[view removeFromSuperview];
} scrollView.showsVerticalScrollIndicator=NO;
scrollView.showsHorizontalScrollIndicator=NO;
scrollView.delegate=self;
[scrollView setScrollEnabled:YES]; } - (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

【代码笔记】iOS-点击加号增加书架,点击减号减少书架的更多相关文章

  1. easyUI在使用字符串拼接时样式不起作用,点击加号增加一行,点击减号删除一行效果。

    拼接的按钮没有样式,需要使用 var str = $("<a href='javascript:void(0)' class='easyui-linkbutton' onclick=' ...

  2. iOS中CollectionView由于多次点击造成错误的解决方案

    iOS中CollectionCiew由于多次点击,会给程序造成错误. 这个时候,我们可以用过手势类来进行判断和过滤. 但是,有一个快捷的解决方法,那就是给用户响应增加延时操作. 具体代码如下: [co ...

  3. IOS开发笔记 IOS如何访问通讯录

    IOS开发笔记  IOS如何访问通讯录 其实我是反对这类的需求,你说你读我的隐私,我肯定不愿意的. 幸好ios6.0 以后给了个权限控制.当打开app的时候你可以选择拒绝. 实现方法: [plain] ...

  4. 笔记-iOS 视图控制器转场详解(上)

    这是一篇长文,详细讲解了视图控制器转场的方方面面,配有详细的示意图和代码,为了使得文章在微信公众号中易于阅读,seedante 辛苦将大量长篇代码用截图的方式呈现,另外作者也在 Github 上附上了 ...

  5. 如何让dedecms文章点击量增加一定的数值

    用dedecms建站都知道有一个文章点击量这个参数,我们可不可以用这个浏览量做些延伸扩展呢?比如加上一个固定值变成另外一个指标.很多朋友已经想到了,如下图,我们将本文浏览量286设为点击量,加上300 ...

  6. 前端学习:JS(面向对象)代码笔记

    前端学习:JS(面向对象)代码笔记 前端学习:JS面向对象知识学习(图解) 创建类和对象 创建对象方式1调用Object函数 <body> </body> <script ...

  7. ios h5 app avalon tap点击事件失效及点击延迟300ms问题解决方法

    1.ios h5 app avalon tap事件失效 使用MUI制作app界面,使用avalon.js渲染数据,发现在(Android上正常)ios上运行时容器div的avalon的ms-on-ta ...

  8. 【hadoop代码笔记】Mapreduce shuffle过程之Map输出过程

    一.概要描述 shuffle是MapReduce的一个核心过程,因此没有在前面的MapReduce作业提交的过程中描述,而是单独拿出来比较详细的描述. 根据官方的流程图示如下: 本篇文章中只是想尝试从 ...

  9. 【hadoop代码笔记】hadoop作业提交之汇总

    一.概述 在本篇博文中,试图通过代码了解hadoop job执行的整个流程.即用户提交的mapreduce的jar文件.输入提交到hadoop的集群,并在集群中运行.重点在代码的角度描述整个流程,有些 ...

随机推荐

  1. ASP.NET MVC网站在opera mobile emulator中浏览

         众所周知,ASP.NET MVC4有一个Moblie Application,我们都可以通过这个来开发手机网站,当然为了简单,也可以在一般的MVC中的View下面加个后缀mobile,形如I ...

  2. AdjustWindowRect与AdjustWindowRectEx

    AdjustWindowRect 根据所需的矩形大小,计算所需的矩形的大小;然后,窗口矩形可以传递给CreateWindow函数创建一个窗口. AdjustWindowRectEx 是AdjustWi ...

  3. 表单input中录入资料的检查方法及示例

    本文内容 表单录入信息的检查原则 常见检查的三种方法 示例     输入框有字符长度的限制     输入框有输入字符个数范围的限制 知识补给--检查方式的介绍     输入框只可(或不可)输入数 ...

  4. C#调用Java方法(详细实例)

    C#可以直接引用C++的DLL和转换JAVA写好的程序.最近由于工作原因接触这方面比较多,根据实际需求,我们通过一个具体例子把一个JAVA方法转换成可以由C#直接调用的DLL C#调用c++ C#调用 ...

  5. C# Graphics绘图 picBox

    需求: Bitmap bm = new Bitmap(picboxPreview.Width, picboxPreview.Height); using (Graphics g = Graphics. ...

  6. Nlog 记录日志到 sqlite

    最近研究了一下Nlog这个日志框架,这里记录一下如何将日志写到sqlite中. 第一步:使用NuGet获取Nlog和Sqlite 第二步:在sqlite中创建一个database,这里我用了SQLit ...

  7. 速战速决 (1) - PHP: 概述, 常量, 变量, 运算符, 表达式, 控制语句

    [源码下载] 速战速决 (1) - PHP: 概述, 常量, 变量, 运算符, 表达式, 控制语句 作者:webabcd 介绍速战速决 之 PHP 概述 常量 变量 运算符 表达式 控制语句 示例1. ...

  8. 使用MySQL WorkBench导入数据库

    1. 在MySQL WorkBench的Server Administrator中双击要连接的数据库: 2. 点击左边的Data Import/Restore; 3. Import from Dump ...

  9. 关于Class.getResource和ClassLoader.getResource的路径问题

    Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题. Class.getResource(Stri ...

  10. [教学] Firemonkey TImageList 加入原寸图片

    下面示范 Firemonkey TImageList 加入一张原始尺寸图片的方法: 使用代码加图 if Assigned(List) then begin MyList.Items.Clear; do ...