gpt4 book ai didi

iphone - 完全用代码复制 PhotoScroller

转载 作者:行者123 更新时间:2023-11-29 04:06:56 25 4
gpt4 key购买 nike

我一直在尝试用代码完全复制 Apple 的 PhotoScroller 示例应用程序,但到目前为止还没有成功。即使我将 PhotoViewController、ImageScrollView 和 TileView 类复制到新项目并以编程方式创建 PhotoViewController 实例,它也不像在 PhotoScroller 应用程序中那样工作:

  1. 在我的复制应用程序中,我可以上下移动图像,而在 PhotoScroller 应用程序中,我只能左右滚动图像。

  2. 分页 ScrollView 未正确居中对齐图像,因此可以看到黑色填充,并且图像的某些部分位于屏幕外。

相反,如果我还复制 PhotoViewController 和 MainWindow xib 文件并将 MainWindow 设置为 iPhone 部署信息中的主界面,则一切正常。所以 xib 文件中一定有一些魔力,尽管它们对我来说基本上是空的。

以下是在应用程序中以编程方式创建 PhotoViewController 的代码:didFinishLaunchingWithOptions: 方法。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

// Override point for customization after application launch.
self.viewController = [[[PhotoViewController alloc] initWithNibName:@"PhotoViewController" bundle:nil] autorelease];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
)

那么在 PhotoViewController.xib 和 MainWindow.xib 文件中配置什么才能使一切正常工作?


要理解我的意思,请按照以下简单步骤操作:

  1. 下载 WWDC 2010 示例代码。

    http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?code=y&source=x&bundleID=20645

  2. 打开磁盘镜像,转到 iOS 文件夹,然后解压 PhotoScroller.zip。

  3. 解压 PhotoScroller.zip,在 Xcode 中打开,构建并在模拟器中运行。

  4. 请注意,一切都按预期正常工作。

  5. 现在将 AppDelegate.m 中的 application:didFinishLaunchingWithOptions: 更改为以下内容。

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
    PhotoViewController* vc = [[[PhotoViewController alloc] init] autorelease];
    window.rootViewController = vc;
    [window addSubview:vc.view];
    [window makeKeyAndVisible];
    return YES;
    }
  6. 现在在模拟器中重建并重新运行。

  7. 请注意差异,图像未居中,您可以看到黑色填充。

那么 PhotoViewController.xib 中的什么设置使分页 UIScrollView 位于 ImageScrollView 的中心?

最佳答案

确切地说,由于发布的代码不完整,我不知道您的问题是什么,但下面是我的代码,它 100% 与 PhotoScroller 示例应用程序一样工作。我给出了 3 张图像的示例,请参阅此

UIImage *iPhone = [UIImage imageNamed:@"iPhone.png"]; 
UIImage *iPad = [UIImage imageNamed:@"iPad.png"];
UIImage *macBookAir = [UIImage imageNamed:@"MacBookAir.png"];

CGRect scrollViewRect = self.view.bounds;
self.myScrollView = [[UIScrollView alloc] initWithFrame:scrollViewRect];
self.myScrollView.pagingEnabled = YES;
self.myScrollView.contentSize = CGSizeMake(scrollViewRect.size.width *scrollViewRect.size.height);
[self.view addSubview:self.myScrollView];

CGRect imageViewRect = self.view.bounds;
UIImageView *iPhoneImageView = [self newImageViewWithImage:iPhone frame:imageViewRect];
[self.myScrollView addSubview:iPhoneImageView];

/* Go to next page by moving the x position of the next image view */
imageViewRect.origin.x += imageViewRect.size.width;
UIImageView *iPadImageView = [self newImageViewWithImage:iPad frame:imageViewRect];
[self.myScrollView addSubview:iPadImageView];

/* Go to next page by moving the x position of the next image view */
imageViewRect.origin.x += imageViewRect.size.width;
UIImageView *macBookAirImageView = [self newImageViewWithImage:macBookAir frame:imageViewRect];
[self.myScrollView addSubview:macBookAirImageView];

关于iphone - 完全用代码复制 PhotoScroller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15043676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com