一,效果图。

二,工程图。

三,代码。

ReaderViewController.h

  1. #import <UIKit/UIKit.h>
  2.  
  3. @interface ReaderViewController : UIViewController
  4. <UIScrollViewDelegate>
  5. {
  6. UIScrollView *scrollView;
  7. }
  8. @property(nonatomic,strong) UIScrollView *scrollView;;
  9. -(void)add;
  10. -(void)dele;
  11. -(void)reloadView;
  12.  
  13. @end

ReaderViewController.m

  1. #import "ReaderViewController.h"
  2.  
  3. #define ImageHeight 120
  4. static int num = 0;
  5.  
  6. @interface ReaderViewController ()
  7.  
  8. @end
  9.  
  10. @implementation ReaderViewController
  11.  
  12. - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
  13. {
  14. self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
  15. if (self) {
  16. // Custom initialization
  17. }
  18. return self;
  19. }
  20.  
  21. - (void)viewDidLoad
  22. {
  23. [super viewDidLoad];
  24. // Do any additional setup after loading the view.
  25.  
  26. //字体的颜色
  27. self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:248.0/255.0 green:172.0/255.0 blue:37.0/255.0 alpha:1.0];
  28. //导航栏背景图
  29. [self addBackgroundView:@"1.png"];
  30.  
  31. //左侧删除按钮
  32. UIBarButtonItem *rightBarButton = [[UIBarButtonItem alloc]
  33. initWithTitle:@"delete"
  34. style:UIBarButtonItemStyleBordered
  35. target:self
  36. action:@selector(dele)];
  37. //右侧增加按钮
  38. UIBarButtonItem *leftBarButton = [[UIBarButtonItem alloc]
  39. initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
  40. target:self
  41. action:@selector(add)];
  42.  
  43. self.navigationItem.rightBarButtonItem = rightBarButton;
  44. self.navigationItem.leftBarButtonItem = leftBarButton;
  45.  
  46. //scrollerView
  47. scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 416)];
  48. scrollView.contentSize=CGSizeMake(320,480);
  49.  
  50. //设置背景颜色
  51. UIImage *backimg=[UIImage imageNamed:@"3.png"];
  52. UIImageView *backview=[[UIImageView alloc] initWithImage:backimg];
  53. backview.frame=CGRectMake(0, 0, 320, 480);
  54. [self.view addSubview:backview];
  55.  
  56. [self.view addSubview:scrollView];
  57. //重新刷新界面
  58. [self reloadView];
  59.  
  60. }
  61. //导航栏上标题
  62. -(void)addBackgroundView:(NSString*)image{
  63.  
  64. UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:image]];
  65. imgView.frame = CGRectMake(0, 0, 320, 44);
  66. [self.navigationController.navigationBar addSubview: imgView];
  67.  
  68. UILabel *title = [[UILabel alloc] initWithFrame:CGRectMake((320-150)/2, 0, 150, 44)];
  69. [title setText:@"书架"];
  70. [title setTextColor:[UIColor whiteColor]];
  71. [title setTextAlignment:NSTextAlignmentCenter];
  72. [title setShadowColor:[UIColor grayColor]];
  73. [title setBackgroundColor:[UIColor clearColor]];
  74. [title setFont:[UIFont boldSystemFontOfSize:20.0]];
  75. [self.navigationController.navigationBar addSubview:title];
  76. }
  77.  
  78. //添加一个书架
  79. -(void)add{
  80.  
  81. num++;
  82.  
  83. UIImage *backimg=[UIImage imageNamed:@"2.png"];
  84. UIImageView *backview=[[UIImageView alloc] initWithImage:backimg];
  85. backview.frame=CGRectMake(0, (num-1)*ImageHeight, 320, ImageHeight);
  86. backview.tag = num+100;
  87.  
  88. [scrollView addSubview:backview];
  89.  
  90. if (num>3) {
  91. scrollView.contentSize=CGSizeMake(320,num*ImageHeight);
  92. }
  93. }
  94.  
  95. //删除一个书架
  96. -(void)dele{
  97.  
  98. if (num<=0) {
  99. return;
  100. }
  101.  
  102. for (UIView *view in scrollView.subviews) {
  103. if(view.tag == (num+100))
  104. [view removeFromSuperview];
  105. }
  106.  
  107. num--;
  108.  
  109. if (num>3) {
  110. scrollView.contentSize=CGSizeMake(320,num*ImageHeight);
  111. }
  112.  
  113. }
  114.  
  115. //主界面初始化
  116. -(void)reloadView{
  117.  
  118. NSLog(@"reloadView");
  119. //遍历当前界面的所有子界面,把子界面删除干净
  120. for(UIView *view in scrollView.subviews){
  121. [view removeFromSuperview];
  122. }
  123.  
  124. scrollView.showsVerticalScrollIndicator=NO;
  125. scrollView.showsHorizontalScrollIndicator=NO;
  126. scrollView.delegate=self;
  127. [scrollView setScrollEnabled:YES];
  128.  
  129. }
  130.  
  131. - (void)didReceiveMemoryWarning
  132. {
  133. [super didReceiveMemoryWarning];
  134. // Dispose of any resources that can be recreated.
  135. }

【代码笔记】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. JS魔法堂:从void 0 === undefined说起

    一.前言 当使用coffeescript书写如下代码时 name = person?.name 会被预编译为 ; ,那么void 0到底是什么意思呢?运行得知void 0===undefined为tr ...

  2. C#对图片文件的压缩、裁剪操作初探

    在做项目时,对图片的处理,以前都采用在上传时,限制其大小的方式,这样带来诸多不便.毕竟网站运维人员不一定会对图片做处理,经常超出大小限制,即使会使用图片处理软件的,也由于个人水平方面原因,处理效果差强 ...

  3. 【转载】lucene中Field.Index,Field.Store详解

    lucene在doc.add(new Field("content",curArt.getContent(),Field.Store.NO,Field.Index.TOKENIZE ...

  4. C# 与 Java 中的枚举

    C#代码: 利用扩展方法,扩展枚举功能 using System; using System.Collections.Generic; using System.Text; using System. ...

  5. 基于Ionic2的开源项目

    项目介绍 基于Ionic2的Ionic中文论坛客户端,该应用也是边学边做的,为了将更多常用东西加入到APP中,有些逻辑不通之处,敬请包涵. 开源地址 https://github.com/zxj963 ...

  6. [控件] 加强版 TOneSelection (改良自 Berlin 10.1 TSelection)

    本控件修改自 Delphi Berlin 10.1 的 TSelection (FMX.Controls.pas) 修改重点: 移动点显示在上方 增加(左中,上中,右中,下中)控制点,含原来的总共有 ...

  7. iOS取得AddressBook联系人信息

    新建一个CContact类用于存放联系人信息,下面是该类的代码: CContact.h代码: 01 #import <Foundation/Foundation.h> 02   03   ...

  8. 在linux中连接wifi

    分为以下步骤:-----------(键入以下命令的时候注意大小写与空格.) 1. 进入终端treminal 获取管理员权限---------------------- su 命令(# su) 2. ...

  9. 如何在MFC对话框应用程序中使用ColorPicker控件

    在日常的应用程序开发中,当涉及到曲线绘制时,为了将多条不同类型的曲线区分开,常常需要将它们指定不同的颜色.今天在这里简单的记录一下,如何实现及使用ColorPicker控件.程序用到4个文件依次为:C ...

  10. ajax传参到实体类对应字段

    之前看公司的代码,从页面ajax传参数到接口类,接口类用一个实体接收.我一直以为c#会自动识别,赋值到同名的字段. 我曾和朋友讨论过,双方辩论.朋友认为c#没有这种功能,没有这样高级匹配的机制.而我因 ...