首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

创建用于 iPad 的 iOS 幻灯片应用程序(3)添加图像视图

创建用于 iPad 的 iOS 幻灯片应用程序(3)添加图像视图

添加图像视图    下一步是添加图像视图用于显示图像。iOS 框架提供了一套丰富的内置控件,可用来创建您的应用程序。对于该示例,您将使用 UIImageView 控件。通过使用 UIImageView 您可以显示那些编译到应用程序的图像,本地存储在设备中的图像,或者,如该示例所示,从网站下载的图像。
要添加 UIImageView,请打开 slideshowControllerView.XIB 文件,它是 slideshowControllerView 的用户界面定义文件。打开 XIB 后,请在对象面板选择 Image View,如  所示。   
图 5. 将 UIImageView 对象添加到视图控制器 XIB 选择了 Image View 后,将其拖放到 slideshowControllerView。通常,IDE 会自动缩放控件的尺寸,使其适应可用的空间。如果没有进行缩放,则只须拖动控件并调整其大小,直到它填满了整个显示区域。
当该控件出现在视图上后,设置某些参数获得应用程序的最佳外观和感受。 显示了 Image View 控件的属性屏幕上的设置。
图 6. 配置 UIImageView您需要执行的两个修改分别是 “模式” 和 “背景”。将 “模式” 设置为    Aspect Fit,以便缩放该图像但仍保留其原始的宽高比。如果您不想使用 Aspect Fit,您的图像将拉伸和缩放,以匹配图像视图的显示区域,最终看起来非常棒。
由于图像可能并不总是适合可用的区域,您还需要将 Background 属性设置为 Dark Text Color 或使用颜色选择器选择深黑色。在默认情况下,该值为白色。大多数照片当放在亮白框架里时效果都不好。
保存 XIB 文件,并移动到 SlideshowViewController.h 文件。进行小改动,如  所示。
清单 2. SlideshowViewController.h
1
2
3
4
5
6
7
#import <UIKit/UIKit.h>

@interface slideshowViewController : UIViewController {
    IBOutlet UIImageView *imgView;
}

@end




您需要将 Outlet 添加到 slideshowViewController,以允许在 XIB 中定义的控件连接到视图控制器类。
在添加了出口后,返回到 XIB 文件,选择 UIImageView,使用连接检查器将 UIImageView 对象连接到 slideshowViewController 类中的  imgView 变量。
连接完成后,对幻灯片视图控制器类本身进行代码修改,以加载图像。 显示了该类别的完整的第一版。
清单 3. SlideshowViewController.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#import "slideshowViewController.h"

@implementation slideshowViewController

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}

#pragma mark - View lifecycle

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSURL *imageURL = [NSURL URLWithString"http://localhost/photos/CRW_0675.jpg"];
    NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
    UIImage *image = [UIImage imageWithData:imageData];
    [imgView setImage:image];
}

- (void)viewDidUnload
{
    [super viewDidUnload];
}

- (BOOL)shouldAutorotateToInterfaceOrientation:
   (UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}

@end




slideshowViewController 类中的重要工作是以 viewDidLoad 方法完成的,现在:
  • 加载来自 URL 的数据。
  • 将数据转换成图像。
  • 在图像视图上使用 setImage 方法显示该图像。
此时,您应该运行该应用程序来测试图像是否会出现。您会看到与  相似的内容,该图显示了 iPad 模拟器中显示图像。
图 7. 来自服务器的第一个图像如果您没有看到图像,问题很可能是因为 setImage 方法调用 imgView。验证 UIImageView 对象是否正确地连接到 imgView 变量。如果在此之前,应用程序发生了故障,那么您的 URL 可能不正确,或者服务器上的某些项目不正确。
返回列表