如何将UIScrollview与UIPagecontrol结合起来显示不同的视图?

2023-12-26

我已经搜索并搜索了这方面的教程,但没有一个是我正在寻找的。我尝试过苹果的示例,但它只是颜色,我不知道如何使其成为视图。我所寻找的只是一个可以在显示页面控件的同时进行分页的屏幕。每次滚动视图页面时,我希望它显示带有按钮的完全不同的视图,很像 iPhone 的主屏幕。我发现下面的示例代码仅适用于图像,但我想修改为使用单独的视图。请帮忙!谢谢。

- (void)setupPage {
    scrollView.delegate = self;

    [self.scrollView setBackgroundColor:[UIColor clearColor]];
    [scrollView setCanCancelContentTouches:NO];

    scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
    scrollView.clipsToBounds = YES;
    scrollView.scrollEnabled = YES;
    scrollView.pagingEnabled = YES;

    NSUInteger nimages = 0;
    CGFloat cx = 0;
    for (; ; nimages++) {
        NSString *imageName = [NSString stringWithFormat:@"image%d.jpg", (nimages + 1)];                
        UIImage *image = [UIImage imageNamed:imageName];
        if (image == nil) {
            break;
        }
        UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

        CGRect rect = imageView.frame;
        rect.size.height = image.size.height;
        rect.size.width = image.size.width;
        rect.origin.x = ((scrollView.frame.size.width - image.size.width) / 2) + cx;
        rect.origin.y = ((scrollView.frame.size.height - image.size.height) / 2);

        imageView.frame = rect;

        [scrollView addSubview:imageView];
        [imageView release];

        cx += scrollView.frame.size.width;
    }

    self.pageControl.numberOfPages = nimages;
    [scrollView setContentSize:CGSizeMake(cx, [scrollView bounds].size.height)];
}

前几天我正在尝试这个。我还在习惯使用UIScrollView但您可以通过以下方式将视图添加到您的UIScrollView:

UIView *blueView = [[UIView alloc] init];
blueView.frame = CGRectMake(100, 0, 500, 1024);
blueView.backgroundColor = [UIColor colorWithRed:164.0/256 green:176.0/256 blue:224.0/256 alpha:1];
[scrollView addSubview:blueView];
[blueView release];

UIView *orangeView = [[UIView alloc] init];
orangeView.frame = CGRectMake(700, 0, 500, 1024);
orangeView.backgroundColor = [UIColor colorWithRed:252.0/256 green:196.0/256 blue:131.1/256 alpha:1];
[scrollView addSubview:orangeView];
[orangeView release];

请注意,我正在设置x值在frame.origin每个视图,以便它们彼此相邻。您还必须设置内容的大小UIScrollView与类似的东西[scrollView setContentSize:CGSizeMake(1200, 1024)];这样它就知道它的子视图有多大。

然后,如果您需要控制UIPageControl,你可以设置它的numberOfPages到 2(对于上面的示例滚动视图)并更改其currentPage财产。你可以通过实施来做到这一点scrollViewDidEndDecelerating:,这是一个方法UIScrollViewDelegate。您可以通过检查滚动视图位于哪个“页面”contentOffset.x value.

希望这可以帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将UIScrollview与UIPagecontrol结合起来显示不同的视图? 的相关文章

  • 为 iPhone 创建 .ipa

    我为 iPhone 开发了一款应用程序 构建后 我在构建文件夹中得到了 app 文件 我的应用程序名称是Myapp 然后我在build文件夹中得到了Myapp app文件 我的问题是我想创建 ipa 文件 这是怎么回事 它是为了安装 越狱的
  • iOS 显示 UIImage 全屏并启用缩放(捏合和双击)

    我有一个UIImage从相机捕获UIImagePickerController 现在 在用户单击它之后 我希望它显示全屏 并且能够使用捏合手势进行放大和缩小 还可以使用双击手势来放大特定区域 换句话说 我想模拟ios默认图像浏览器的功能 我
  • 如何在文本末尾添加按钮,如 Facebook 的“继续阅读”?

    当状态帖子太长时 Facebook 应用程序会剪切文本并在末尾添加 继续阅读 它如何知道在哪里剪切文本并添加 继续阅读 不仅仅是向 textView 或标签添加按钮 而是如何剪切字符串 例如 在下图中 我将行数限制为 7 我可以在 text
  • 将用户重定向到 iTunes 应用商店或 Google Play 商店?

    我正在寻找一种简单的解决方案来发布我的应用程序的一个链接 例如在 Facebook 上 如果用户使用移动设备访问它 它应该自动重定向到正确的应用程序商店 否则 用户应该被重定向到我的网站 iOS应用程序 http itunes apple
  • scrollToRowAtIndexPath:atScrollPosition:动画滚动太慢

    基于分页 UIScrollView 的页面更改 我正在调用scrollToRowAtIndexPath atScrollPosition animated到所显示的该页面的表详细信息 void scrollViewDidScroll UIS
  • 如何在 iPhone 应用程序的 url 中传递字符串值

    NSURLRequest request NSURLRequest requestWithURL NSURL URLWithString http www krsconnect no community api html method ba
  • UIAlertView 中的 MPVolumeView?

    是否可以将 MPVolumeView 放入 UIAlertView 中 我已经尝试过put它在里面 但不显示 这可能是sizeToFit or initWithFrame 部分 有没有办法测试是否MPVolumeView实际上正在被创建吗
  • XC测试元组

    我正在尝试构建一个单元测试 如下所示 region is a Double Double tuple XCTAssertEqual region 0 0 200 0 但 Xcode 给我一个错误 Cannot invoke XCTAsser
  • 处理 NSPropertyListSerialization 中的 CFNull 对象

    在我的应用程序中 我尝试序列化服务器响应字典并将其写入文件系统 但对于某些响应 我收到错误 属性列表格式无效 原因是服务器响应中的 CFNull 对象 现在 服务器响应将不断变化 因此我没有明确的方法来删除 CFNull 对象 下面是我的代
  • 无限 UIScrollView 在 iOS4.3 中出现奇怪的行为,而不是 iOS5

    我已经实现了一个包含 UIView 的无限 UIScrollView 在 iOS5 模拟器和 iPhone 中滚动时 效果非常好 但在 iOS 4 3 sim 和手机 中 情况有点疯狂 滚动条传递的视图比应有的多 大约比 iOS5 多 10
  • 标签中的文字大小

    如何限制标签中的字符数 您可以通过设置自动截断带有省略号的文本frame of the UILabel NSInteger newSize 10 label frame CGRectMake label frame origin x lab
  • UICollectionviewcell 更改背景

    如果我知道部分编号和项目编号 如何更改单元格中的背景 下面的代码显示了我如何尝试做到这一点 UICollectionViewCell collectionView UICollectionView collectionView cellFo
  • iPhone / iPad IOS 应用程序仪器内存计数与 task_info 内存计数

    我一直在使用 Instruments Leak Tester 它给出了大约 1 3 meg 的应用程序总分配数字 但是 当使用 task info 时 它会报告更大的内存量 例如 10 20 meg 我想我只是想确认task info正在返
  • 拦截传入短信

    我想知道拦截短信的选项有哪些 我希望能够在收到短信时启动一些代码来处理短信 任何关于这在技术上是否可行以及如果有不止一种方法我有什么选择的建议 将不胜感激 谢谢 保罗 由于您有如此多的标签 因此很难判断您实际上是为哪个操作系统开发的 在 i
  • 带约束的 Swift 动画

    是否可以通过改变约束来制作 UIView 动画 基本上 我想要动画myv UIView 具有 x y 高度和宽度约束 使用 UIView animateWithDuration 1 5 通过改变旧的限制 是的 这是可能的 你可以这样做 fu
  • AVAudioMixerNode pan 或 AVAudioUnitSamplerstereoPan 属性无法更改 AVAudioEngine 声音输出的左/右平衡

    我有以下代码 它播放单个 MIDI 音符 但我希望能够调整平衡 平移 以便它仅从左扬声器或右扬声器或某些组合中播放 我认为更改 sampler stereoPan 或 engine mainMixerNode pan 也许可以解决问题 但它
  • 在应用程序内启用或禁用 Iphone 推送通知

    我有一个 iPhone 应用程序 可以接收推送通知 目前 我可以通过转到 iPhone 设置 通知来禁用我的应用程序的推送通知 但我想在我的应用程序中添加一个开关或按钮来启用或禁用推送通知 这是可以做到的 因为我在 foursquare i
  • 更改选项卡栏应用程序中的 UITableViewController 样式

    我有一个带有 4 个选项卡的选项卡栏 iPhone 应用程序 在界面生成器中 我为每个选项卡设置视图控制器 我想将一个 UITableViewController 的样式从普通样式更改为分组样式 我用这样的方式替换 init 方法 id i
  • extern NSString *const 在类中。

    你好 我有这个头文件 import
  • 如何在 XCode5 中将部署目标更改为 5.1.1 [重复]

    这个问题在这里已经有答案了 我正在一个项目中工作 我需要支持 iOS 5 1 1 但在 部署目标 的下拉菜单中我没有 5 1 1 作为选项 我的问题是如何将 iOS 5 1 1 添加为部署目标 我将非常感谢你的帮助 如果您愿意 您可以在框中

随机推荐

  • python 为什么以及如何截断数值数据?

    我在这里处理两个变量 但很困惑 因为当我想将它们作为 URL 参数按原样发送时 它们的值似乎正在变化 它们失去了精度 看看我用 python 解释器重现的这个场景 gt gt gt lat 0 33245794180134 gt gt gt
  • 如何获取远程存储库中提交哈希的 git 标签?

    您可以通过执行以下操作来获取指向本地存储库中特定提交的标记 git tag points at
  • iPhone 中的 XSLT 版本

    我计划在我的 iPhone 应用程序中使用 XML XSLT iPhone 目前支持哪个版本的 XSLT 我可以使用 XSLT 2 0 还是仅使用 1 0 Using libxslt在 iPhone OS 上实际上很简单 下载libxslt
  • 1 到 10 之间的不同数字

    我想生成 0 9 范围内的 10 个不同的数字 所需的输出可能如下所示 9 0 8 6 5 3 2 4 1 7 Dim arraynum 9 As Integer Dim crmd As Boolean Dim rmd as integer
  • ReactJS 清除父组件的输入

    我正在教自己使用一个超级简单的应用程序做出反应 该应用程序要求用户输入用户界面中显示的单词 如果用户输入正确 应用程序会显示另一个单词 依此类推 我已经让它几乎可以工作了 除了一件事 正确输入一个单词后 我需要清除输入元素 我在这里看到了几
  • 谜题:找出数组中重复的元素

    数组的大小为n 除了两个元素之外 数组中的所有元素在 0 n 1 范围内都是不同的 以恒定的时间复杂度 无需使用额外的临时数组即可找出重复的元素 我尝试过像这样使用 o n a 1 0 0 2 3 b 1 1 1 1 1 i 0 int r
  • 删除 AngularJS 中的查询字符串

    例如 从 URL 读取并处理查询字符串值后 http myurl com foo baa 我可以将网址更改为 http myurl com foo by using location search myQueryStringParamete
  • Powershell 使用嵌套引号调用 msbuild

    使用 Powershell 和 Psake 为 Visual Studio 解决方案创建包和部署 尝试使用 msbuild 部署数据库项目 使用 msdos Visual Studio 命令行可以正常工作 msbuild target De
  • UI-Router:我可以始终使用相同的控制器吗?

    我正在使用 UI Router 在我的应用程序中添加一些 菜 单 stateProvider state list url Focales templateUrl demo focals html controller FocalCtrl
  • python 的 sum() 和非整数值

    有没有一种简单快捷的方法将 sum 与非整数值一起使用 所以我可以这样使用它 class Foo object def init self bar self bar bar mylist Foo 3 Foo 34 Foo 63 200 re
  • 警告:左移计数 >= 类型宽度

    我对处理位非常陌生 并且在编译时遇到以下警告 7 warning left shift count gt width of type 我的7号线是这样的 unsigned long int x 1 lt lt 32 如果大小是有意义的lon
  • 使用 IEnumerable 和 IQueryable 作为 ObjectSet 类型时的差异

    据我了解 当我使用 LINQ 扩展方法 带有 lambda 表达式语法 时IQueryable那是在事实实例中ObjectSet它们被转换为 LINQ to SQL 查询 我的意思是这个命令 IQueryable
  • 我们应该使用 Nexus 还是 Artifactory 来构建 Maven 存储库? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们使用 Maven 进行大型构建过程 gt 100 个模块 我们一直将外部依赖项存储在源代码管理中 并使用它来更新本地存储库 然而 我们已经准
  • 如何为初学者设置 SSH 配置文件 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 首先 我对 SSH 相当陌生 From 这个问题 https stackoverflow com questions 56285972 c
  • 坏元素的映射

    我正在实施k means我想创建新的质心 但映射遗漏了一个元素 然而 当K值较小 例如 15 效果会很好 基于此code http www cs berkeley edu rxin ampcamp ecnu machine learning
  • 返回 n 个布尔值的所有组合的函数?

    我正在尝试实现一个函数 该函数接受数字 n 并返回布尔值列表的列表 其中包含 n 布尔值的所有可能组合 例如的输出 make bools 3 应该看起来像 false false false false false true false t
  • 生成更新脚本 MySQl 表

    我的 MySql 表有 250 个字段 我需要进行更新 手动编写整个更新可能需要几个小时 In SQL服务器 我可以选择 生成更新脚本 我正在寻找类似的选项 我尝试了 Phpmyadmin 和 Navicat 但没有找到这样的选项 Use
  • 实体框架自定义 SQL 查询返回泛型类型

    我正在尝试制作一个通用报告系统 以便我可以动态地将报告添加到我的程序中 而不是每次必须添加报告时都发布新版本的程序 目前 我已经部分工作了 我的自定义报告 SQL 与报告名称一起存储在表中 报表名称用于用户单击的按钮 当他们单击按钮时 我希
  • 找不到aspectj-maven-plugin的依赖项

    我在使用aspectj maven plugin 时遇到CTW 方面的问题 我收到以下错误 执行条目突出显示 Multiple annotations found at this line Execution default of goal
  • 如何将UIScrollview与UIPagecontrol结合起来显示不同的视图?

    我已经搜索并搜索了这方面的教程 但没有一个是我正在寻找的 我尝试过苹果的示例 但它只是颜色 我不知道如何使其成为视图 我所寻找的只是一个可以在显示页面控件的同时进行分页的屏幕 每次滚动视图页面时 我希望它显示带有按钮的完全不同的视图 很像