您的位置:首页 > 移动开发

【iphone应用开发】iPhone应用开发之四:UIImageView和UIWebView的详细讲解

2011-11-21 17:30 423 查看
1.UIImageView的讲解

(1)初始化

UIImageView*imageView=[[UIImageViewalloc]initWithFrame:CGRectMake(0.0,45.0,300,300)]; imageView.image=[UIImageimageNamed:@"a.png"];//加载入图片 [self.viewaddSubView:image];

也可以这样声明:

UIImage*image=[[UIImagealloc]initWithData:[NSDatadataWithContentsOfURL:[NSURLURLWithString:@"http://farm4.static.flickr.com/3092/2915896504_a88b69c9de.jpg"]]]; UIImageView*imageView=[[UIImageViewalloc]initWithImage:image];

在加载入图片的时候有两种加载UIImage的方法:如下:

-》1

[UIImageimageNamed:@"a.png"];

-》2

NSString*path=[[NSBundlemainBundle]pathForResource:@”icon” ofType:@”png”]; myImage=[UIImageimageWithContentsOfFile:path];

如果找到图片,装载到iPhone系统缓存图象。那意味图片是(理论上)放在内存里作为cache的。因此如果图片资源多了或大了,此方式容易引起发生内存警告从而导致自动退出的问题。

最好是通过直接读取文件路径[UIImageimageWithContentsOfFile]解决掉这个问题.

NSImage*image=[[NSImagealloc]initWithContentsOfURL:(NSURL*)]; NSImage*image=[[NSImagealloc]initWithContentsOfFile:(NSString*)];


最后要记得释放掉image。


(2)利用UIImageView实现幻灯片效果

利用UIImageView和UISider来制作幻灯片。

ImagesViewController.h

#import<UIKit/UIKit.h>

@interfaceImagesViewController:UIViewController

{

UIImageView*imageView;

UISlider*slider;

}

@property(nonatomic,retain)IBOutletUIImageView*imageView;

@property(nonatomic,retain)IBOutletUISlider*slider;

-(IBAction)sliderAction:(id)sender;

@end


ImagesViewController.m

#import"ImagesViewController.h"
#import"Constants.h"

#definekMinDuration0.0
#definekMaxDuration10.0

@implementationImagesViewController

@synthesizeimageView,slider;

-(void)dealloc
{
[imageViewrelease];
[sliderrelease];

[superdealloc];
}

-(void)viewDidLoad
{
[superviewDidLoad];

self.title=NSLocalizedString(@"ImagesTitle",@"");
self.imageView.animationImages=[NSArrayarrayWithObjects:
[UIImageimageNamed:@"scene1.jpg"],
[UIImageimageNamed:@"scene2.jpg"],
[UIImageimageNamed:@"scene3.jpg"],
[UIImageimageNamed:@"scene4.jpg"],
[UIImageimageNamed:@"scene5.jpg"],nil];
imageView.animationDuration=5.0;
[self.imageViewstopAnimating];
imageView.image=[UIImageimageNamed:@"a.png"];[self.imageViewsetIsAccessibilityElement:YES];
[self.imageViewsetAccessibilityLabel:self.title];
[self.slidersetAccessibilityLabel:NSLocalizedString(@"DurationSlider",@"")];
}
-(void)viewDidUnload
{
[superviewDidUnload];

self.imageView=nil;
self.slider=nil;
}
-(IBAction)sliderAction:(id)sender
{
UISlider*durationSlider=sender;
self.imageView.animationDuration=[durationSlidervalue];
if(!self.imageView.isAnimating)
[self.imageViewstartAnimating];
}

#pragmamark-
#pragmamarkUIViewControllerdelegatemethods

-(void)viewWillDisappear:(BOOL)animated
{
[self.imageViewstopAnimating];

self.navigationController.navigationBar.barStyle=UIBarStyleDefault;
[UIApplicationsharedApplication].statusBarStyle=UIStatusBarStyleDefault;
}

-(void)viewWillAppear:(BOOL)animated
{
[self.imageViewstartAnimating];
self.navigationController.navigationBar.barStyle=UIBarStyleBlackOpaque;

[UIApplicationsharedApplication].statusBarStyle=UIStatusBarStyleBlackOpaque;
}

@end


首先通过加载多张图片进入imageView的animationImages里面。再设置动画的时间间隔animationDuration,并设置UISider控制幻灯片播放的速度,让图片像幻灯片那么播放。

2.UIWebView的讲解

(1)初始化

在.h文件中声明UIWebView。

@interfaceWebViewController:UIViewController{

IBOutletUIWebView*webView;
}

@property(nonatomic,retain)UIWebView*webView;

@end


在.m文件中初始化UIWebView并载入要读取的URL,如下:

-(void)viewDidLoad{

NSString*urlAddress=@”http://www.google.com”;

//CreateaURLobject.
NSURL*url=[NSURLURLWithString:urlAddress];

//URLRequstObject
NSURLRequest*requestObj=[NSURLRequestrequestWithURL:url];

//LoadtherequestintheUIWebView.
[webViewloadRequest:requestObj];
}


并在你的delegate里面载入跟IB一起的XIB文件,如下:

-(void)applicationDidFinishLaunching:(UIApplication*)application{

self.wvTutorial=[[WebViewControlleralloc]initWithNibName:@”WebView”bundle:[NSBundlemainBundle]];

[windowaddSubview:[wvTutorialview]];

//Overridepointforcustomizationafterapplaunch
[windowmakeKeyAndVisible];
}


今天就讲UIImageView和UIWebView的利用,这两个都是比较有用的,在以后的开发中布局会经常用到,最后,谢谢大家支持。欢迎大家拍砖。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: