ios开发——平铺导航(基于分屏视图)

由两个控件完成:UIPageControl和UIScrollView

示例代码如下

#import "ViewController.h"
//定义屏幕宽度宏
#define S_WIDTH [[UIScreen mainScreen] bounds].size.width
//定义屏幕高度宏
#define S_HEIGH [[UIScreen mainScreen] bounds].size.height

@interface ViewController ()<UIScrollViewDelegate>
- (IBAction)changePage:(id)sender;
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@property (weak, nonatomic) IBOutlet UIPageControl *pageControl;
@property (strong,nonatomic) UIImageView *imageView1;
@property (strong,nonatomic) UIImageView *imageView2;
@property (strong,nonatomic) UIImageView *imageView3;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //设置ScrollView的委托对象为self(当前视图控制器)
    self.scrollView.delegate = self;
    //设置屏幕滚动视图中内容视图的大小
    self.scrollView.contentSize = CGSizeMake(S_WIDTH * 3,S_HEIGH);
    //设置屏幕滚动视图为当前屏幕的大小(self.view.frame)
    self.scrollView.frame = self.view.frame;
    
    self.imageView1 = [[UIImageView alloc]initWithFrame:CGRectMake(0.0F, 0.0F, S_WIDTH, S_HEIGH)];
    self.imageView1.image = [UIImage imageNamed:@"达芬奇-蒙娜丽莎.png"];
    self.imageView2 = [[UIImageView alloc]initWithFrame:CGRectMake(S_WIDTH, 0.0F, S_WIDTH, S_HEIGH)];
    self.imageView2.image = [UIImage imageNamed:@"罗丹-思想者.png"];
    self.imageView3 = [[UIImageView alloc]initWithFrame:CGRectMake(2*S_WIDTH, 0.0F, S_WIDTH, S_HEIGH)];
    self.imageView3.image = [UIImage imageNamed:@"保罗克利-肖像.png"];
    [self.scrollView addSubview:self.imageView1];
    [self.scrollView addSubview:self.imageView2];
    [self.scrollView addSubview:self.imageView3];
    
    //self.scrollView.contentInset.top,这个属性用于在内容视图周围添加边框
}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    
}

#pragma mark --  实现UIScrollViewDelegate委托协议
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
    //CGPoint结构体有x和y两个成员,contentOffset就是内容视图相对于滚动视图的偏移量
    CGPoint offset = scrollView.contentOffset;
    //offset.x就是偏移量x坐标的值,S_WIDTH屏幕的宽度,他们的商就是当前页标号
    self.pageControl.currentPage = offset.x / S_WIDTH;
}


#pragma mark --  实现UIPageControl事件处理
- (IBAction)changePage:(id)sender {
    //为了让屏幕产生动画效果,我们使用UIView中的animateWithDuration来改变控件的偏移量
    [UIView animateWithDuration:0.3f animations:^{
        //根据上面的委托协议得到的现在的页面编号
        NSInteger whichPage = self.pageControl.currentPage;
        //滚动视屏的内容偏移量为x上的S_WIDTH * whichPage
        self.scrollView.contentOffset = CGPointMake(S_WIDTH * whichPage,0.0f);
    }];
}
@end

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Smobiler是一款基于Visual Studio的移动应用开发平台,可以快速地创建跨平台的移动应用程序。它支持多种操作系统,包括iOS、Android和Windows Phone等。 以下是Smobiler平台的入门教程: 1. 下载和安装Smobiler 首先,在Smobiler官网下载并安装Smobiler开发环境。这个过程非常简单,只需要按照提示安装即可。 2. 创建新项目 打开Visual Studio,选择“新建项目”,在模板中选择Smobiler,然后选择所需的项目模板。可以选择“空白应用程序”或者“示例应用程序”等。 3. 设计界面 在Smobiler平台中,可以使用可视化设计器来设计移动应用程序的用户界面。在设计界面时,可以添加控件、设置属性和布局等等。可以通过拖放控件来实现布局,也可以通过手动调整来实现更细致的控制。 4. 编写代码 Smobiler平台支持C#和VB.NET编程语言。可以通过事件处理程序来响应用户交互,例如按钮点击、列表项选中等等。此外,还可以使用Smobiler提供的API来访问设备功能和服务。例如,可以使用API来访问相机、位置信息、网络等等。 5. 调试和测试 在Smobiler平台中,可以使用模拟器进行调试和测试。模拟器可以模拟不同的设备和操作系统,以确保应用程序在不同的设备和操作系统上都能正常工作。 6. 发布应用程序 一旦应用程序开发完成并测试无误,就可以发布应用程序了。Smobiler平台支持将应用程序打包成本地安装文件或者上传到应用商店进行发布。 以上是Smobiler平台的入门教程。通过学习和实践,可以快速掌握Smobiler平台的应用开发技术,开发出高质量的移动应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值