mirror of
https://github.com/viq/NewsBlur.git
synced 2025-08-21 05:44:54 +00:00
76 lines
2.4 KiB
Mathematica
76 lines
2.4 KiB
Mathematica
![]() |
//
|
||
|
// NJKWebViewProgressView.m
|
||
|
//
|
||
|
// Created by Satoshi Aasanoon 11/16/13.
|
||
|
// Copyright (c) 2013 Satoshi Asano. All rights reserved.
|
||
|
//
|
||
|
|
||
|
#import "NJKWebViewProgressView.h"
|
||
|
|
||
|
@implementation NJKWebViewProgressView
|
||
|
|
||
|
- (id)initWithFrame:(CGRect)frame
|
||
|
{
|
||
|
self = [super initWithFrame:frame];
|
||
|
if (self) {
|
||
|
[self configureViews];
|
||
|
}
|
||
|
return self;
|
||
|
}
|
||
|
|
||
|
- (void)awakeFromNib
|
||
|
{
|
||
|
[super awakeFromNib];
|
||
|
[self configureViews];
|
||
|
}
|
||
|
|
||
|
-(void)configureViews
|
||
|
{
|
||
|
self.userInteractionEnabled = NO;
|
||
|
self.autoresizingMask = UIViewAutoresizingFlexibleWidth;
|
||
|
_progressBarView = [[UIView alloc] initWithFrame:self.bounds];
|
||
|
_progressBarView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
|
||
|
UIColor *tintColor = [UIColor colorWithRed:22.f / 255.f green:126.f / 255.f blue:251.f / 255.f alpha:1.0]; // iOS7 Safari bar color
|
||
|
if ([UIApplication.sharedApplication.delegate.window respondsToSelector:@selector(setTintColor:)] && UIApplication.sharedApplication.delegate.window.tintColor) {
|
||
|
tintColor = UIApplication.sharedApplication.delegate.window.tintColor;
|
||
|
}
|
||
|
_progressBarView.backgroundColor = tintColor;
|
||
|
[self addSubview:_progressBarView];
|
||
|
|
||
|
_barAnimationDuration = 0.27f;
|
||
|
_fadeAnimationDuration = 0.27f;
|
||
|
_fadeOutDelay = 0.1f;
|
||
|
}
|
||
|
|
||
|
-(void)setProgress:(float)progress
|
||
|
{
|
||
|
[self setProgress:progress animated:NO];
|
||
|
}
|
||
|
|
||
|
- (void)setProgress:(float)progress animated:(BOOL)animated
|
||
|
{
|
||
|
BOOL isGrowing = progress > 0.0;
|
||
|
[UIView animateWithDuration:(isGrowing && animated) ? _barAnimationDuration : 0.0 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
|
||
|
CGRect frame = _progressBarView.frame;
|
||
|
frame.size.width = progress * self.bounds.size.width;
|
||
|
_progressBarView.frame = frame;
|
||
|
} completion:nil];
|
||
|
|
||
|
if (progress >= 1.0) {
|
||
|
[UIView animateWithDuration:animated ? _fadeAnimationDuration : 0.0 delay:_fadeOutDelay options:UIViewAnimationOptionCurveEaseInOut animations:^{
|
||
|
_progressBarView.alpha = 0.0;
|
||
|
} completion:^(BOOL completed){
|
||
|
CGRect frame = _progressBarView.frame;
|
||
|
frame.size.width = 0;
|
||
|
_progressBarView.frame = frame;
|
||
|
}];
|
||
|
}
|
||
|
else {
|
||
|
[UIView animateWithDuration:animated ? _fadeAnimationDuration : 0.0 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
|
||
|
_progressBarView.alpha = 1.0;
|
||
|
} completion:nil];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@end
|