이전 포스팅의 업그레이드 버전이다.
기존 WebView는 아무 준비 없이 갑자기 떠버린다.
즉, 로딩되는 모습을 볼 수가 없다는 것이다.
현재 앱을 통해 Web를 접속하면 가운데에 로드되는 표시 (빙글빙글 돌아가는)를 볼 수 있을것이다.
지금 그것을 첨가해보겠다.
1.
2. 화면 구성
StoryBoard에서 화면 구성을 한다.
화면 전체에 WebView를 배치한다.
3. 클래스와 연동 및 구성하기
ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UIWebViewDelegate>
{
IBOutlet UIWebView* WebView;
}
@property (strong, nonatomic) UIWebView* WebView;
-(void) goUrl:(NSString*)urlAddr;
@end
ViewController.m
- (void)viewDidLoad
{
o any additional setup after loading the view, typically from a nib.
}
....
- (IBAction)goUrl:(NSString*)urlAddr
{
WithString:urlAddr]]];
}
- (void)webViewDidStartLoad:(UIWebView *)webView
{
NSLog(@"Start Log");
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"Finish Log");
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
NSLog(@"Fail Log");
}
4. 컴파일 후 구동 해보기
지금 위와 같이 간단히 하여 Web이 보여지는걸 확인 할 수 있다.
5. 자 여기서 이제 Upgrade를 해보자.
ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UIWebViewDelegate>
{
IBOutlet UIWebView* WebView;
UIActivityIndicatorView* spinner;
}
@property (strong, nonatomic) UIWebView* WebView;
@property (strong, nonatomic) UIActivityIndicatorView* spinner;
-(void) goUrl:(NSString*)urlAddr;
@end
ViewController.m
- (void)viewDidLoad
{
WebView.delegate = self;
spinner = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
[spinner setCenter:CGPointMake(ScreenWidth/2, ScreenHeight/2)];
[self.view addSubview:spinner];
[self goUrl : @"http://www.naver.com"];
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib
}
....
- (IBAction)goUrl:(NSString*)urlAddr
{
[WebView loadRequest: [NSURLRequest requestWithURL:
[NSURL URLWithString:urlAddr]]];
}
- (void)webViewDidStartLoad:(UIWebView *)webView
{
NSLog(@"Start Log");
[spinner startAnimating];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"Finish Log");
[spinner stopAnimating];
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
NSLog(@"Fail Log");
}
첨가한것이 바로 spinner 라는 놈 입니다.
UIActivityIndicatorView Class
Use an activity indicator to show that a task is in progress.
처리 진행중인걸 알려줄 떄 사용한다.
그리고, 설정하는 곳에서 소스가 길었던게 있었죠 ?
spinner = [[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
spinner변수에 UIActivityIndicatorView를 할당하는데 WhiteLarge Style도 설정한다.
Style의 종류는 아래오 같습니다.
typedef enum { UIActivityIndicatorViewStyleWhiteLarge, UIActivityIndicatorViewStyleWhite, UIActivityIndicatorViewStyleGray,} UIActivityIndicatorViewStyle;
http://jenemia.tistory.com/44
'옛날' 카테고리의 다른 글
Layout xml 속성 [Android] (0) | 2015.12.10 |
---|---|
소프트웨어 버전 정보 이해하기 (0) | 2015.12.10 |
Activity Indicator 적용 [IOS][Object-C] (0) | 2015.12.10 |
UIWebview 사용시 로딩 화면 추가 [IOS][Objective-C] (0) | 2015.12.10 |
로딩화면(Launch Screen, Intro) [IOS][Object-C] (0) | 2015.12.10 |