alinx / DSFavIconManager

DSFavIconManager is a complete solution for displaying favicons.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DSFavIconManager

DSFavIconManager is a complete solution for displaying favicons.

Features:

  • Finds and downloads a favicon from an URL.
  • Fast and concurrent.
  • Cache icons in memory and in disk.
  • It doesn't uses a full blown HTML parser.
  • Optional fall-back to apple touch icons for retina displays.

Installation

Use CocoaPods:

pod 'DSGraphicsKit'

Usage

demo

Updating an image view
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 16.0f, 16.0f)];
imageView.layer.cornerRadius =  2.0f;
imageView.image = [[DSFavIconManager sharedInstance] iconForURL:url completionBlock:^(UIImage *icon) {
    imageView.image = icon;
}];
Using apple touch icon fall-back for high resolution displays
[DSFavIconManager sharedInstance].useAppleTouchIconForHighResolutionDisplays = YES;
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 16.0f, 16.0f)];
imageView.layer.cornerRadius =  2.0f;
imageView.image = [[DSFavIconManager sharedInstance] iconForURL:url completionBlock:^(UIImage *icon) {
    imageView.image = icon;
    // Apple touch icons usually are designed for rounded corners.
    imageView.layer.masksToBounds = (icon.size.width / icon.scale) > 16.0f;
}];
Updating an activity indicator
[AFNetworkActivityIndicatorManager sharedManager].enabled = true;
[[NSNotificationCenter defaultCenter] addObserverForName:kDSFavIconOperationDidStartNetworkActivity object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) {
    [[AFNetworkActivityIndicatorManager sharedManager] incrementActivityCount];
}];

[[NSNotificationCenter defaultCenter] addObserverForName:kDSFavIconOperationDidEndNetworkActivity object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) {
    [[AFNetworkActivityIndicatorManager sharedManager] decrementActivityCount];
}];

Changelog

0.10.0
  • Support for OS X.
  • Dropped dependency on AFNetworking.
  • Added network activity notifications.
0.9.0

Initial release.

About

DSFavIconManager is a complete solution for displaying favicons.

License:MIT License