Board logo

标题: 创建用于 iPad 的 iOS 幻灯片应用程序(3)添加图像视图 [打印本页]

作者: look_w    时间: 2018-10-18 16:59     标题: 创建用于 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 方法完成的,现在:
此时,您应该运行该应用程序来测试图像是否会出现。您会看到与  相似的内容,该图显示了 iPad 模拟器中显示图像。
图 7. 来自服务器的第一个图像如果您没有看到图像,问题很可能是因为 setImage 方法调用 imgView。验证 UIImageView 对象是否正确地连接到 imgView 变量。如果在此之前,应用程序发生了故障,那么您的 URL 可能不正确,或者服务器上的某些项目不正确。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0