iOS 5 新增的UIPageViewController 简单示例

大语言模型(LLM)在组合优化中的新突破:LLM-LNS与FunSearch性能对比 本文深入探讨了大语言模型(LLM)在组合优化中的创新应用,重点对比了LLM-LNS与FunSearch两种方法的性能差异。研究表明,LLM-LNS在物流路径规划、资源调度等场景中展现出显著优势,其双层自演化架构能有效平衡探索与利用,相比传统方法提升效率约43%。文章还提供了实践选择指南,帮助开发者根据具体需求选用合适的技术方案。 阅读详情


代码说起来也不简单,不过也不复杂,类是UITableView 通过datasource与delegate委托获取数据源和操作.


下面直接上代码:

CWPageModel.h

#import <Foundation/Foundation.h>

@class CWPageController;

@interface CWPageModel : NSObject <UIPageViewControllerDataSource>

@property (strong, nonatomic) NSArray *pageContent; 

- (CWPageController *)viewControllerAtIndex:(NSUInteger)index;
- (NSUInteger)indexOfViewController:(CWPageController *)viewController;
@end


CWPageModel.m

#import "CWPageModel.h"
#import "CWPageController.h"

@implementation CWPageModel
@synthesize pageContent;

- (void) createContentPages {
    NSMutableArray *pageStrings = [[NSMutableArray alloc] init];
    for (int i = 1; i < 11; i++)
    {
        NSString *contentString = [[NSString alloc]
                                   initWithFormat:@"This is the page %d of content displayed using UIPageViewController in iOS 5.", i];
        [pageStrings addObject:contentString];
    }
    pageContent = [[NSArray alloc] initWithArray:pageStrings]; 
}

- (id) init {
    if (self = [super init]) {
        [self createContentPages];
    }
    return self;
}

- (void) dealloc {
    [pageContent release];
    [super dealloc];
}


- (CWPageController *)viewControllerAtIndex:(NSUInteger)index {
    // Return the data view controller for the given index.
    if (([self.pageContent count] == 0) || 
        (index >= [self.pageContent count])) {
        return nil;
    }
    // Create a new view controller and pass suitable data.
    CWPageController *dataViewController =
    [[[CWPageController alloc]
     init] autorelease];
    dataViewController.dataObject =
    [self.pageContent objectAtIndex:index];
    return dataViewController;
}

- (NSUInteger)indexOfViewController:(CWPageController *)viewController {
    return [self.pageContent 
            indexOfObject:viewController.dataObject]; 
}


- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController {
    NSUInteger index = [self indexOfViewController:
                        (CWPageController *)viewController];
    if ((index == 0) || (index == NSNotFound)) {
        return nil;
    }
    index--;
    return [self viewControllerAtIndex:index];
}

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
    NSUInteger index = [self indexOfViewController:
                        (CWPageController *)viewController];
    if (index == NSNotFound) {
        return nil;
    }
    index++;
    if (index == [self.pageContent count]) {
        return nil;
    }
    return [self viewControllerAtIndex:index];
}

@end


CWPageController.h

#import <UIKit/UIKit.h>

#pragma mark -
#pragma mark pageController
@interface CWPageController : UIViewController

@property (strong, nonatomic) id dataObject;

@end


CWPageController.m

#import "CWPageController.h"

@interface CWPageController ()

@end


@implementation CWPageController
@synthesize dataObject;



- (void) viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    
    UILabel *label = [[UILabel alloc] initWithFrame:self.view.bounds];
    label.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleHeight;
    label.text = dataObject;
    label.numberOfLines = 5;
    [self.view addSubview:label];
    [label release];
}

@end



main.m

#import <UIKit/UIKit.h>
#import "CWPageController.h"
#import "CWPageModel.h"

#define BARBUTTONITEM(title,act) [[[UIBarButtonItem alloc] initWithTitle:title \
style:UIBarButtonItemStylePlain \
target:self \
action:act] autorelease];


//--------------------------------------------------------------------------------------------
#pragma mark -
#pragma mark ViewController()

@interface ViewController : UIViewController <UIPageViewControllerDelegate> {

}

@property (nonatomic,retain) UIPageViewController *pageController;
@property (nonatomic,retain) CWPageModel    *pModel;

@end


@implementation ViewController

@synthesize pageController = _pageController;
@synthesize pModel = _pModel;

- (void) dealloc {
    [_pageController release];
    [_pModel release];
    
    [super dealloc];
}


- (void) viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    self.title = @"demo";
    
    _pModel = [[CWPageModel alloc] init];
    
    NSDictionary *options = 
    [NSDictionary dictionaryWithObject:
     [NSNumber numberWithInteger:UIPageViewControllerSpineLocationMin]
                                forKey: UIPageViewControllerOptionSpineLocationKey];
        
    _pageController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl
                                                      navigationOrientation:UIPageViewControllerNavigationOrientationVertical
                                                                    options:options];
    CWPageController *initialViewController =
    [_pModel viewControllerAtIndex:0];
    NSArray *viewControllers =
    [NSArray arrayWithObject:initialViewController];
    [_pageController setDataSource:_pModel];

    [_pageController setViewControllers:viewControllers
                              direction:UIPageViewControllerNavigationDirectionReverse
                               animated:NO
                             completion:^(BOOL f){}];
    [self addChildViewController:_pageController];
    [self.view addSubview:_pageController.view];
    [_pageController didMoveToParentViewController:self];
}

- (void) viewDidUnload {

    [super viewDidUnload];
}
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
    return YES;
}


@end


//-----------------------------------------------------------------------------------------------------

#pragma mark -
#pragma mark AppDelegate
@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) UIViewController *viewController;

@end

@implementation AppDelegate

@synthesize window = _window;
@synthesize viewController = _viewController;

- (void) dealloc {
    [_window release];
    [_viewController release];
    
    [super dealloc];
}

- (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    srand(time(NULL));
    
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    
    self.viewController = [[[ViewController alloc] init] autorelease];
    
    UINavigationController *controller = [[UINavigationController alloc] initWithRootViewController:self.viewController];
    self.window.rootViewController = controller;
    [controller release];
    
    [self.window makeKeyAndVisible];
    return YES;
}

@end

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}



通用抓取————6D位姿估计 这意味着算法在没有物体的先验知识(如 CAD 模型)的情况下,依然能够通过神经网络捕捉物体的外观、形状和几何特征,生成相关的 6D 位姿估计。通过输入物体类别的描述,算法能够推断出该类别物体的位姿和尺度,无需特定物体的 CAD 模型。在这个坐标空间中,物体的位姿和尺度都是已知的,基于这个标准化表示,算法可以对输入图像中的物体进行 6D 位姿和尺寸的估计。○优势: ICP 是一种非常有效的位姿优化算法,特别适合精细调整物体的位姿,确保最终估计的位姿与真实物体的点云或模型高度一致。 阅读详情

相关推荐

手把手教你用TL431设计反激电源补偿器(附波特图调试技巧)

本文详细介绍了如何使用TL431设计反激电源补偿器,并提供了波特图调试技巧。通过实战经验分享,帮助工程师快速掌握补偿网络设计、分压电阻计算和稳定性判据,避免常见设计误区,提升电源稳定性与效率。

weixin_29201859的博客 379

iOS开发进阶(十一):ViewController 控制器详解

iOS 界面开发最重要的首属和View是View的控制器,也就是一般的页面,用来管理页面的生命周期(它相当于安卓里的Activity,两者很像,但又有一些差异)。的特点是它有好几种。一种最基本的。所谓容器,就是它们本身不能单独用来显示,必须在里面放一个或几个。用于导航栏管理页面;用于底部tab管理页面;用于切换器管理页面;容器还可以嵌套,比如把放进里面,这样在tab页面里,可以用启动导航栏样式的二级子页面。

IT全栈 华强工作室 3065

CentOS 9 Stream 上安装 MySQL 8.0+

根据提示进行设置,包括设置新的 root 密码、禁用远程 root 登录等。MySQL 在首次安装时会生成一个临时密码。这样就完成了 MySQL 8.0.37 的安装。这将安装最新的 MySQL 8.0 版本。

小强不是坑 1681

ios开发——分页控制器(UIPageViewController)

1.UIPageViewController类常用属性 属性一:双面显示(doubleSided) doubleSided为true——双面 doubleSided为false——单面 属性二:书脊位置(spineLocation) UIPageViewControllerDelegate中的pageViewController:spineLocationForInterfaceOrie...

DC的博客 3556

HFSS实战(三)——过孔via TDR仿真

在上一讲中,主要是通过观察S参数确定via的优化是否达到目标。但S参数只能看到一个整体的结果,并不知道via真实的阻抗是多少?想要单独确定via的阻抗,最好还是通过TDR的仿真。

luohuo9844的博客 1万+

qemu(2) -- 定制开发板

向qemu源码中添加自定义开发板

xflm的博客 843

【iOS】UIPageViewController学习

笔者最近在写项目时想实现一个翻书效果,上网学习到了今天写本篇博客总结一下关于该控制器的学习,这里笔者学习较浅,后期再进行补充。下面我给出一张图来展现。

2301_79847748的博客 1334

WiFi基本概念(六)(L-STF,L-LTF)

L-STF它由10个OFDM symbol(1,0,1,0,1,0,1,0,1,0)构成,每个symbol是0.8us,GI是0.2us,总计10us。Symbol的长度是正常长度的1/4,因此称为Short training field,主要用于快速进行信号检测,信号同步,自动增益控制,接收天线选择(Diversity Selection)。 由于symbol长度是正常的1/4,子载波的宽度是正常的4倍,能进行初略的信道估计,其使用了-24, -20, -16, -12, -8, -4, 4, 8, 1

reekyli的专栏 6864

iOS翻页视图控制器UIPageViewController的应用

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34410662的博客 223

自适应滤波-----LMS(Least Mean Square)算法

自适应滤波的意义所在 自适应滤波器解决非平稳的过程,因为实际信号的统计特性可能是非平稳的或者是未知的。 自适应滤波器的特点: 1.没有关于待提取信息的先验统计知识 2.直接利用观测数据依据某种判据在观测过程中不断递归更新 3.最优化 自适应滤波分类: 处理器的结构划分:横向结构、格型结构 重复一次计算自适应需要的数据划分:成批处理法、递归处理法 按调节算法...

heda3的博客 10万+

Python3+PCAN-USB基于PCAN-Basic二次开发实现上位机功能

一、环境搭建 1.概述 本文主要是通过Python3与CAN总线工具PCAN-USB基于官方PCAN-Basic库实现CAN总线消息读写功能。 2.PCANBasic.py和PCANBasic.dll下载地址 https://www.peak-system.com/fileadmin/media/files/pcan-basic.zip 3.Python安装 下载地址:https://www.p...

测试领域技术分享 5186

UIPageViewController - 页面视图控制器

概述UIPageViewController 可以实现内容页之间的导航功能,每一页的内容都由它自己的view controller来管理。页面过渡有两种方式: UIPageViewControllerTransitionStyle.PageCurl(卷曲翻页) UIPageViewControllerTransitionStyle.Scroll(滚动) .PageCurl当以此方式过渡页面的时候,U

笨鱼@Blog 4886

手把手教你学Simulink--进阶电机控制场景实例:基于Simulink的直流电机双闭环调速系统抗负载扰动仿真

摘要:本文基于Simulink平台构建直流电机双闭环调速系统,重点研究其在工业传送带场景下的抗负载扰动性能。系统采用转速外环(稳速)和电流内环(限流)的嵌套结构,通过工程法整定PI参数,实现了转速跌落<10%、恢复时间<0.5s的优异抗扰性能。仿真结果表明,相比单闭环系统,双闭环控制使转速跌落率降低47%,恢复时间缩短75%。文中详细介绍了数学模型建立、Simulink模块实现及参数优化方法,并提供了完整代码和模型文件,为电机控制系统设计提供实用参考。

MHD0815的博客 180

iOS UIPageViewController使用

UIPageViewController是iOS 5.0之后提供的一个分页控件可以实现图片轮播效果和翻书效果.使用起来简单方便. 一、初始化方法 - (instancetype)initWithTransitionStyle:(UIPageViewControllerTransitionStyle)style navigationOrientatio...

ihoudf 1821

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

iOS 5 一个UIPageViewController程序示例

iOS 5 一个UIPageViewController程序示例

qq_43685389的博客 374

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

IOS 5新增API介绍及使用

本文原始地址:IOS 5新增API介绍及使用 1.UIStepper  UIStepper *stepper = [[UIStepper alloc] initWithFrame:CGRectMake(200, 100, 0, 0)]; [stepper sizeToFit]; stepper.value = 0; stepper.minimumValue

Acorld 2785

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

iOS UIPageViewController教程

UIPageViewController是iOS 5.0之后提供的一个分页控件可以实现图片轮播效果和翻书效果.使用起来也很简单方便.关于UIPageViewController的使用就介绍这么多,关键点在于UIPageViewController的配置项的设置以及数据源的控制.希望这篇文章会对你有所帮助Demo地址。...

Lee优快云77的博客 937

iOS---UIPageViewController教程

转自:https://www.jianshu.com/p/46c8c585d50b     UIPageViewController简介 UIPageViewController是iOS 5.0之后提供的一个分页控件可以实现图片轮播效果和翻书效果.使用起来也很简单方便. UIPageViewController使用 初始化 进入系统API你可以找到iOS SDK提供的初始化方法 -...

iotjin的专栏 2876

iOS 5 :一个UIPageViewController程序示例

原文:http://www.techotopia.com/index.php/An_Example_iOS_5_iPhone_UIPageViewController_Application在Xcode中新建项目时,可以选择“Page-based Application”项目模板。可以利用这个模板创建一种“基于页”的应用程序,在1年的每个月中显示不同的页。奇怪的是,这是Xcode提供的唯一一个基于

kmyhy的专栏 2万+

iOS UIPageViewController

ios5中就引入了这个 UIPageViewController,它也是一种controller容器,提供了2种在controller之间切换的动画,一种是很普通的滑动效果,另一种是很炫的书翻页效果。如果你的程序有多个在功能上并列的controller,并且适合使用以上2种动画进行切换,那么就应当使用UIPageViewController。 关于UIPageViewController,有2个

heng615975867的专栏 2694

UIPageViewController实现界面左右滑动

@interface ViewController ()<UIPageViewControllerDataSource, UIPageViewControllerDelegate> @property (nonatomic, strong) NSArray *contentViewControllers; @property (nonatomic, strong) UIPageViewController *pageViewController; @end @implementation.

培根芝士的专栏 2793

ios中关于UIPageViewController边缘自动翻页去除的问题

5.0以后系统提供的UIPageViewController用来自作电子书之类的很不错,自带的翻页效果很逼真,但在具体做项目的过程中,有时因为需求的关系,在书本的边缘地方需要放置一些控件,比如按钮,但系统的点击边缘自动翻页显然跟我们的控件相冲突,网上找了一会,总结了一下解决的方案,首先获取我们的uipagecontroller里的手势: //获取uipagecontroller里的手势

wangdaren的专栏 8706

iPhone/iOS UIViewController之UIPageViewController(iOS5 only)

一.基本参数及构成 Datasource提供数据来源 delegate跟踪手势和设备方向变化 viewControllers显示在当前屏幕的view Controller,最多2个,这个是只读,设置的化要调用相应的setViewControllers guesturRecognizers:手势识别,可以将相关手势添加到更大的view中去,比方说pageViewController.

5268

UIPageViewController 代理说明

//UIPageViewController类 一、UIPageViewControllerDataSource 数据源代理(视图数据支持), @required //以下两条代理方法为必须实现 /** * @brief 往回翻页时触发,(检测到翻页控制器进行向前翻页动作那一瞬间触发) * * @param pageViewController 翻页控制器(即当前阅读器...

blackbigdragon的博客 860

UIPageViewController

UIPageViewController UIPageViewController是iOS5之后,苹果再度给提供的一个强大的类。用以实现类似翻页效果。 代码实现: 创建Datasource数组部分: 1 // 首先懒加载翻页控制器 2 #pragma mark - Lazy Methods 3 - (UIPageViewCont...

IF 113
上一篇: UIResponder inputView与inputAccessoryView
下一篇: iOS NSDateFormatter 转换 出现 8小时偏差问题
watsy
博客等级 码龄19年 133粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值