[iOS基础控件 - 5.3] 电台APP可滚动主界面(UIScrollView制作)

A.功能
1.上下可滚动的电台 2 x n 的图标集
2.顶部半透明标题
3.底部半透明功能按钮
 
B.实现思路
1.设置图标、启动画面
 
 
 
2.拖入UIScrollView,设置背景色
(1)设置contentSize, x=0阻止水平移动
 
3.加入电台图标(6个)
 
4.加入顶部标题和设置按钮,加入到总的View,不是UIScrollView
(1)设置半透明
(2)给UIScrollView顶部增加额外的滚动区域(不直接使用位置下移,是为了达到顶部标题区的穿透效果),区域和顶部标题区位置、尺寸一致
(3)初始化UIScrollView设置一开始的滚动位置contentOffset,一开始不要上升到顶部标题区
(4)状态栏高20个单位,注意标题和按钮位置
 1     // 取得最底端的Y值
 2     CGFloat maxY = CGRectGetMaxY(self.lastImage.frame);
 3    
 4     // 设置水平方向不可滚,垂直方向可滚动到最底端
 5     self.scrollView.contentSize = CGSizeMake(0, maxY);
 6    
 7     // 设置顶部、底部间隔
 8     self.scrollView.contentInset = UIEdgeInsetsMake(55, 0, 70, 0);
 9    
10     // 设置初始滚动位置
11     self.scrollView.contentOffset = CGPointMake(0, -55);
 
  
 
 
5.加入底部按钮
(1)使用CGRectGetMaxY等方法得到底部的最低位置,以设置contentSize
 
6.加入底部功能按钮区
 
 
 
主要代码
 1 //
 2 //  ViewController.m
 3 //  Radio
 4 //
 5 //  Created by hellovoidworld on 14/11/28.
 6 //  Copyright (c) 2014年 hellovoidworld. All rights reserved.
 7 //
 8 
 9 #import "ViewController.h"
10 
11 @interface ViewController ()
12 @property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
13 @property (weak, nonatomic) IBOutlet UIButton *lastImage;
14 
15 @end
16 
17 @implementation ViewController
18 
19 - (void)viewDidLoad {
20     [super viewDidLoad];
21     // Do any additional setup after loading the view, typically from a nib.
22    
23     [self initScrollView];
24 }
25 
26 - (void)didReceiveMemoryWarning {
27     [super didReceiveMemoryWarning];
28     // Dispose of any resources that can be recreated.
29 }
30 
31 - (void) initScrollView {
32     // 取得最底端的Y值
33     CGFloat maxY = CGRectGetMaxY(self.lastImage.frame);
34    
35     // 设置水平方向不可滚,垂直方向可滚动到最底端
36     self.scrollView.contentSize = CGSizeMake(0, maxY);
37    
38     // 设置顶部、底部间隔
39     self.scrollView.contentInset = UIEdgeInsetsMake(55, 0, 70, 0);
40    
41     // 设置初始滚动位置
42     self.scrollView.contentOffset = CGPointMake(0, -55);
43 }
44 
45 @end

 

 
 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。