我想像幻灯片一样显示三维模型。当你点击“下一步”时,下一个会出现几秒钟的动画。。。。接下来。。。。这与更改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/

10-11 22:36
查看更多