我想像幻灯片一样显示三维模型。当你点击“下一步”时,下一个会出现几秒钟的动画。。。。接下来。。。。这与更改UILabel文本同步进行。
按nextbtn--->(在ARSCNView上)新三维模型显示--->按nextbtn--->(在ARSCNView上)新三维模型显示--->
另外,我想添加一个前一个按钮,以便它也可以回去。如果不清楚,请查看下面的图片以了解更多信息。
所以:
从空闲的三维模型开始
用户按下下一步
使用固有动画播放更改三维模型,老挝更改用户界面标签
每次用户按下“下一步”时,上述三维模型都会发生变化
如果有必要,还可以回到以前的状态。
注意:我已经找到了UILabel,现在我需要在图像中看到的系统上运行3D模型幻灯片。我希望这能澄清一切。
@IBAction func nextPressed(_ sender: Any) {
displayNext()
//显示阵列中的下一个三维模型固有动画
}
@IBAction func prevPressed(_ sender: Any) {
getPrevious()
//使用固有动画显示以前的三维模型
}
func displayNext() {
guard currentIndex < myArray.count else {
// timer.invalidate() //if you don't want to repeat showing the images you can invalidate the timer.
currentIndex = 0 // add this if you want to repeat showing the image
return
}
allArray.append(myArray[currentIndex])
sildeText.text = myArray[currentIndex]
currentIndex += 1
}
func getPrevious() {
if allArray.count > 1 {
allArray.removeLast()
sildeText.text = allArray.last
}
else {
sildeText.text = allArray.last
}
}
请检查应用程序结构..三维模型尚未正确定位。
最佳答案
实现这种行为有两种选择,
添加UIPageviewController
并在内容中添加UILabel和3D模型,并在单击“下一步”或“上一步”按钮时更改页面索引。
使用HorizontalUIScrollView
并在单击“下一步”或“上一步”按钮时更改框架以及UILabel和3D模型。
我更喜欢使用UIPageviewController
,
在ViewController.m中,
导入“ViewController.h”
@interface ViewController () <UIPageViewControllerDataSource, UIPageViewControllerDelegate>
@property (nonatomic,strong) UIPageViewController *PageViewController;
@property (nonatomic, strong) NSArray *arrPageTitles;
@property (nonatomic, strong) NSArray *arrPageDescription;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Create page view controller
self.PageViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageViewController"];
self.PageViewController.dataSource = self;
self.PageViewController.delegate = self;
self.shouldShowPageController = YES;
[self addChildViewController:PageViewController];
[self.view addSubview:PageViewController.view];
[self.PageViewController didMoveToParentViewController:self];
}
#pragma mark - Page View Datasource Methods
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController{
NSUInteger index = ((PageContentVC *) viewController).pageIndex;
if (index == NSNotFound) {
return nil;
}
if (index == 0) {
return [self viewControllerAtIndex:([self.arrPageTitles count] - 1)];
}
index--;
return [self viewControllerAtIndex:index];
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController{
NSUInteger index = ((PageContentVC *) viewController).pageIndex;
if (index == NSNotFound){
return nil;
}
index++;
if (index == [self.arrPageTitles count]){
return [self viewControllerAtIndex:0];
}
return [self viewControllerAtIndex:index];
}
#pragma mark - PageContent View Controller Method
- (PageContentVC *)viewControllerAtIndex:(NSUInteger)index{
if (([self.arrPageTitles count] == 0) || (index >= [self.arrPageTitles count])) {
return nil;
}
// Create a new view controller and pass suitable data.
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"PageContentVC" bundle:[NSBundle mainBundle]];
PageContentVC *pageContentViewController = [storyboard instantiateViewControllerWithIdentifier:@"PageContent"];
pageContentViewController.title = self.arrPageImages[index];
pageContentViewController.description = self.arrPageTitles[index];
pageContentViewController.pageIndex = index;
return pageContentViewController;
}
@end
这里,PageContentVC是
UIPageviewController
中的内容视图控制器关于ios - IOS/ARKIT-如何做上一个和下一个按钮,这些按钮在单击时会随着动画改变3D模型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49579637/