Skip to content

neospirit/GONCategories

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#GONCategories Objective-C categories, used for years in my projects.
Some categories were not written by me, is so I've added the original source in header comment, but I may have missed some.
If so, do not hesitate to tell me, I will update headers to add the original source.

##Usage Simply call method you want to use with appropriate parameters.

##Installation Cocoapods: pod 'GONCategories'
Manual: Copy the Classes folder in your project

Import wanted headers in your project. .pch is a good place ;)
You can also import GON_Categories_All.h to add all categories in your project.

Main headers

GON_Categories_All.h : Import all categories
GON_CoreData_All.h : Import all core data related categories
GON_FoundationExtensions_All.h : Import all foundation related categories
GON_UIKitExtensions_All.h : Import all UIKit related categories
GON_StoreKitExtensions_All.h : Import all StoreKit related categories

##CoreData ###GON_NSManagedObjectContext+Fetching

/* Fetch one object using given key and value. Usefull to fetch objects on their uid key 
 * /!\ Warning, errors are ignored /!\
 */
- (id)fetchObject:(NSString *)entityName usingValue:(id)value forKey:(NSString *)key returningAsFault:(BOOL)fault;

/* Fetch one object using given predicate 
 * /!\ Warning, errors are ignored /!\
 */
- (id)fetchObject:(NSString *)entityName usingPredicate:(NSPredicate *)predicate returningAsFault:(BOOL)fault;

/* Count all objects for given entity.
 * /!\ Warning, errors are ignored /!\
 */
- (NSInteger)countObjects:(NSString *)entityName;

/* Count all objects using given predicate
 * /!\ Warning, errors are ignored /!\
 */
- (NSInteger)countObjects:(NSString *)entityName usingPredicate:(NSPredicate *)predicate;

/* Fetch all objects for given entity.
 * /!\ Warning, errors are ignored /!\
 */
- (NSArray *)fetchObjects:(NSString *)entityName returningAsFault:(BOOL)fault;

/* Fetch all objects using given predicate
 * /!\ Warning, errors are ignored /!\
 */
- (NSArray *)fetchObjects:(NSString *)entityName usingPredicate:(NSPredicate *)predicate returningAsFault:(BOOL)fault;

/* Fetch all objects for given entity and sort them.
 * /!\ Warning, errors are ignored /!\
 */
- (NSArray *)fetchObjects:(NSString *)entityName usingSortDescriptors:(NSArray *)sortDescriptors returningAsFault:(BOOL)fault;

/* Fetch all objects for given entity, using predicate and sort them.
 * /!\ Warning, errors are ignored /!\
 */
- (NSArray *)fetchObjects:(NSString *)entityName usingPredicate:(NSPredicate *)predicate usingSortDescriptors:(NSArray *)sortDescriptors returningAsFault:(BOOL)fault;

###GON_NSManagedObjectContext+FetchRequestsConstructors

/* Create fetch request to fetch one object using given key and value. Usefull to fetch objects on their uid key  */
- (NSFetchRequest*)fetchRequestForEntityObject:(NSString*)entityName usingValue:(id)value forKey:(NSString*)key returningAsFault:(BOOL)fault;

/* Create fetch request to fetch one object using given predicate 
 */
- (NSFetchRequest*)fetchRequestForEntityObject:(NSString*)entityName usingPredicate:(NSPredicate*)predicate returningAsFault:(BOOL)fault;

/* Create fetch request to fetch all objects for given entity.
 */
- (NSFetchRequest*)fetchRequestForEntityObjects:(NSString*)entityName returningAsFault:(BOOL)fault;

/* Create fetch request to fetch all objects using given predicate
 */
- (NSFetchRequest*)fetchRequestForEntityObjects:(NSString*)entityName usingPredicate:(NSPredicate*)predicate returningAsFault:(BOOL)fault;

/* Create fetch request to fetch all objects for given entity and sort them.
 */
- (NSFetchRequest*)fetchRequestForEntityObjects:(NSString*)entityName usingSortDescriptors:(NSArray*)sortDescriptors returningAsFault:(BOOL)fault;

/* Create fetch request to fetch all objects for given entity, using predicate and sort them.
 */
- (NSFetchRequest*)fetchRequestForEntityObjects:(NSString*)entityName usingPredicate:(NSPredicate*)predicate usingSortDescriptors:(NSArray*)sortDescriptors returningAsFault:(BOOL)fault;

###GON_NSManagedObjectContext+Utils

/* Delete all given objects*/
- (void)deleteObjects:(id <NSFastEnumeration>)objects;

##Foundation ###GON_NSArray+Utils

/* Return a shuffled copy of this array  */
- (NSArray *)shuffledArray;

/* Return a reversed version of array */
- (NSArray *)reversedArray;

/* Convert given array to a dicitonary using given valueForKey field as key in dictionary.
 * If valueForKey field is nil, object will be skipped.
 * If many object have the same key, only last one will be stored in dictionary
 */
- (NSDictionary *)convertToDictionaryUsingValueAsKey:(id)valueForKey;

/* Return an array built calling valueForKey:key on each object.
 * If valueForKey: return nil, object will be skipped
 */
- (NSArray *)valuesForKey:(id)key;

/* Return a deep mutable copy */
- (NSMutableArray *)mutableCopyDeep;

@property (nonatomic, readonly) NSRange range; // Return the range of the array (0, count)

###GON_NSArray+SortedArray

/* Retrieve object insertion index, assuming the array is sorted, using given function */
- (NSUInteger)indexForInsertingObject:(id)object sortedUsingFunction:(NSInteger (*)(id, id, void *))compare context:(void*)context;

/* Retrieve object insertion index, assuming the array is sorted, using given selector */
- (NSUInteger)indexForInsertingObject:(id)object sortedUsingSelector:(SEL)selector;

/* Retrieve object insertion index, assuming the array is sorted, using given sort descriptors */
- (NSUInteger)indexForInsertingObject:(id)object sortedUsingDescriptors:(NSArray*)descriptors;

/* Retrieve object insertion index, assuming the array is sorted, using given block */
- (NSUInteger)indexForInsertingObject:(id)object sortedUsingBlock:(NSComparisonResult (^)(id obj1, id obj2))comparatorBlock;

###GON_NSData+Base64

/* Return a base 64 encoded string from NSData */
- (NSString *)base64EncodedString;

###GON_NSData+String

/* Return data as an hexa string */
- (NSString *)hexaString;

/* Return data as an UFT8 encoded string */
- (NSString *)UTF8String;

###GON_NSDate+Utils

/* Yesterday constructor */
+ (instancetype)yesterday;

/* Today constructor */
+ (instancetype)today;

/* Tomorrow constructor */
+ (instancetype)tomorrow;

/* Tells is date is Yesterday */
- (BOOL)isYesterday;

/* Tells is date is Today */
- (BOOL)isToday;

/* Tells is date is Tomorrow */
- (BOOL)isTomorrow;

/* Create a new date by adding given days */
- (NSDate *)dateByAddingDays:(NSInteger)days;

/* Build yesterday date from date, keeping hour */
- (NSDate *)yesterday;

/* Build tomorrow date from date, keeping hour */
- (NSDate *)tomorrow;

/* Build an return a date, stripping hour informations */
- (NSDate *)onlyDate;

/* Convert local time date to gmt one */
- (NSDate *)convertLocalTimeDateToGMTDate;

/* Convert date to local time one, assuming date is a gmt one */
- (NSDate *)convertGMTDateToLocalTimeDate;

/* Compare both date, ignoring time informations */
- (BOOL)isEqualToDateIgnoringTime:(NSDate *)date;

###GON_NSDictionary+Utils

/* Same as objectForKey:, but returning nil if object is [NSNull null] */
- (id)objectForKeyOrNil:(id)key;

/* Same as objectForKey:, but return defaultValue instead of nil if no value found */
- (id)objectForKey:(id)key defaultValue:(id)defaultValue;

/* Assume dictionary values are NSSet object, so return anyObject on one associated to key */
- (id)anyObjectInSetForKey:(id)key;

/* Return inverted dictionary, using keys as value and vice versa.
 * Be careful, if dictionary contains identical objects, some values will be missing in resulting dictionary
 */
- (NSDictionary *)invertedDictionary;

/* Check if dictionary has given key */
- (BOOL)hasKey:(NSString *)key;

/* Return a deep mutable copy */
- (NSMutableArray *)mutableCopyDeep;

###GON_NSFileManager+Utils

/* Return size for item at given path.
 * Return 0 is item was not found
 */
- (unsigned long long)sizeForItemAtPath:(NSString *)path;

/* Check if given file is a directory or not */
- (BOOL)isDirectoryAtPath:(NSString *)path;

###GON_NSHTTPURLResponse+Error

/* Generate an NSError object based on url response 
 * code                 : self.statusCode
 * localizedDescription : [NSHTTPURLResponse localizedStringForStatusCode:self.statusCode]
 * domain               : @"NSHTTPURLResponse+Error.errorDomain" ==> NSHTTPURLResponse_Error_ERROR_DOMAIN
 */
- (NSError *)error;

@property (nonatomic, readonly) BOOL hasError; // Tells if status code match an error

###GON_NSIndexPath+Offset

/* Compute previous row indexpath */
- (NSIndexPath *)previousRow;

/* Compute next row indexpath */
- (NSIndexPath *)nextRow;

/* Compute previous item indexpath */
- (NSIndexPath *)previousItem;

/* Compute next item indexpath */
- (NSIndexPath *)nextItem;

/* Compute next section indexpath */
- (NSIndexPath *)nextSection;

/* Compute previous section indexpath */
- (NSIndexPath *)previousSection;

###GON_NSMutableArray+SortedArray

/* Insert object into array, assuming the array is sorted, using given function */
- (void)insertObject:(id)object sortedUsingFunction:(NSInteger (*)(id, id, void *))compare context:(void*)context;

/* Insert object into array, assuming the array is sorted, using given selector */
- (void)insertObject:(id)object sortedUsingSelector:(SEL)selector;

/* Insert object into array, assuming the array is sorted, using given sort descriptors */
- (void)insertObject:(id)object sortedUsingDescriptors:(NSArray*)descriptors;

/* Retrieve object insertion index, assuming the array is sorted, using given block */
- (void)insertObject:(id)object sortedUsingBlock:(NSComparisonResult (^)(id obj1, id obj2))comparatorBlock;

###GON_NSMutableArray+Utils

/* Insert an object at the first position in the array */
- (void)insertObjectFirst:(id)obj;

/* Remove first object from array. Same as [self removeObjectAtIndex:0]. */
- (void)removeFirstObject;

/* Shuffle array */
- (void)shuffle;

###GON_NSMutableDictionary+Set

/* Same as setObject:forKey:, but adding values in a NSMutableSet */
- (void)addObject:(id)value inSetForKey:(id)key;

/* Same as setObject:forKey:, but unions all values in a NSMutableSet */
- (void)addObjects:(NSSet*)values inSetForKey:(id)key;

/* Same as removeObjectForKey:, but removing value from the created set. If set is empty after operation, it will be removed. */
- (void)removeObject:(id)value fromSetWithKey:(id)key;

###GON_NSMutableDictionary+Array

/* Same as setObject:forKey:, but adding values in a NSMutableArray */
- (void)addObject:(id)value inArrayForKey:(id)key;

/* Same as setObject:forKey:, but unions all values in a NSMutableArray */
- (void)addObjects:(NSArray*)values inArrayForKey:(id)key;

/* Same as removeObjectForKey:, but removing value from the created array. If array is empty after operation, it will be removed. */
- (void)removeObject:(id)value fromArrayWithKey:(id)key;

###GON_NSMutableDictionary+SortedArray

/* Same as setObject:forKey:, but adding values in a sorted NSMutableArray using given function */
- (void)addObject:(id)value inSortedArrayUsingFunction:(NSInteger (*)(id, id, void *))compare context:(void*)context forKey:(NSString *)key;

/* Same as setObject:forKey:, but adding values in a sorted NSMutableArray using given selector */
- (void)addObject:(id)value inSortedArrayUsingSelector:(SEL)aSelector forKey:(NSString *)key;

/* Same as setObject:forKey:, but adding values in a sorted NSMutableArray using given descriptors */
- (void)addObject:(id)value inSortedArrayUsingDescriptors:(NSArray*)descriptors forKey:(NSString *)key;

/* Same as setObject:forKey:, but adding values in a sorted NSMutableArray using given block */
- (void)addObject:(id)value inSortedArrayUsingBlock:(NSComparisonResult (^)(id obj1, id obj2))comparatorBlock forKey:(NSString *)key;

###GON_NSMutableString+Utils

/* Trim string
 * return self 
 */
- (NSMutableString *)trim;

/* Uppercase first letter of string
 * return self 
 */
- (NSMutableString *)ucFirst;

/* Lowercase first letter of string
 * return self 
 */
- (NSMutableString *)lcFirst;

/* Remove all diacritics markings
 * return self 
 */
- (NSMutableString *)removeDiacritics;

/* Add non breaking space characters to string :
 * - Ponctuation rules (!, ?, etc...)
 * - Quotes
 * return self 
 */
- (NSMutableString *)addNonBreakingSpaceCharacters;

/* Replace all HTML entities by UTF-8 character
 * return self 
 */
- (NSMutableString *)cleanHTMLEntities;

/* Add HTML entities to string.
 * return self 
 */
- (NSMutableString *)addHTMLEntities;

###GON_NSNotification+Constructors

/* Build a notification with given name and given sender, building user info with anObject and key */
+ (NSNotification*)notificationWithName:(NSString *)name object:(id)notificationSender withObject:(id)object forKey:(id)key;

###GON_NSNotificationCenter+MainThread

/* Post given notifcation on main thread */
- (void)postNotificationOnMainThread:(NSNotification *)notification;

/* Post given notifcation name on main thread */
- (void)postNotificationNameOnMainThread:(NSString *)notificationName object:(id)notificationSender;

/* Post given notifcation name on main thread with user info */
- (void)postNotificationNameOnMainThread:(NSString *)notificationName object:(id)notificationSender userInfo:(NSDictionary *)userInfo;

/* Post given notifcation on main thread, allowing to wait until done */
- (void)postNotificationOnMainThread:(NSNotification *)notification waitUntilDone:(BOOL)wait;

/* Post given notifcation name on main thread, allowing to wait until done */
- (void)postNotificationNameOnMainThread:(NSString *)notificationName object:(id)notificationSender waitUntilDone:(BOOL)wait;

/* Post given notifcation name on main thread with user info, allowing to wait until done */
- (void)postNotificationNameOnMainThread:(NSString *)notificationName object:(id)notificationSender userInfo:(NSDictionary *)userInfo waitUntilDone:(BOOL)wait;

###GON_NSObject+Block

/* Perfom a block on main queue, no delay. Dispatch is synchrone */
- (void)performBlockOnMainQueueAndWait:(void (^)(void))block;

/* Perfom a block on main queue, no delay. Dispatch is asynchrone */
- (void)performBlockOnMainQueue:(void (^)(void))block;

/* Perform a block on main queue, after delay */
- (void)performBlockOnMainQueueAfterDelay:(NSTimeInterval)delay block:(void (^)(void))block;

/* Perfom a block on background queue, no delay. Dispatch is asynchrone */
- (void)performBlockInBackground:(void (^)(void))block;

/* Perfom a block on background queue, no delay. Dispatch is synchrone */
- (void)performBlockInBackgroundAndWait:(void (^)(void))block;

/* Perform a block on given queue, after delay */
- (void)performBlockOnQueue:(dispatch_queue_t)queue afterDelay:(NSTimeInterval)delay block:(void (^)(void))block;

###GON_NSString+Base64

/* Return data from string, assuming that's a base 64 encoded one */
- (NSData *)dataFromBase64String;

###GON_NSString+Crypto

/* Return hashed SHA256 string */
- (NSString *)SHA256;

/* Return hashed SHA256 base on string converted to utf16 */
- (NSString *)utf16SHA256;

/* Return hashed MD5 string */
- (NSString *)MD5;

/* Return hashed MD5 base on string converted to utf16 */
- (NSString *)utf16MD5;

###GON_NSString+SQL

/* Return cleaned version of SQL value by escaping ' characters */
- (NSString*)cleanedSQLValue;

###GON_NSString+Utils

/* Return a new string, initialized with a generated uuid */
+ (NSString *)stringWithUUID;

/* Return a new string, by appending given suffix to it, assuming its a path.
 * That means that suffix will be added before path extension
 */
- (NSString *)stringByAppendingPathSuffix:(NSString *)pathSuffix;

/* Return YES if string contains given string */
- (BOOL)containsString:(NSString *)string;

/* Return YES if string begins with given string */
- (BOOL)startsWithString:(NSString *)string;

/* Return YES if string ends with given string */
- (BOOL)endsWithString:(NSString *)string;

/* Return trimmed string */
- (NSString *)stringByTrimmingCharacters;

/* Return a string adding non breaking space characters :
 * - Ponctuation rules (!, ?, etc...)
 * - Quotes
 */
- (NSString *)stringByAddingNonBreakingSpaceCharacters;

/* Return same string with uppercased first letter */
- (NSString *)stringUcFirst;

/* Return same string with lowercased first letter */
- (NSString *)stringLcFirst;

/* Return same string removing all diacritics markings */
- (NSString *)stringByRemovingDiacritics;

/* Return range of string */
- (NSRange)range;

/* Return an URL encoded string */
- (NSString *)stringURLEncoded;

/* Return a string, with all HTML entities replaced by UTF-8 character */
- (NSString *)stringByCleaningHTMLEntities;

/* Return a string, adding HTML entities when needed */
- (NSString *)stringByAddingHTMLEntities;

###GON_NSURL+Utils

/* Return query parameters */
- (NSDictionary *)queryParameters;

###GON_NSURL+Split

/* Compute an array of url based on baseURL, with concatened values
 * value are converted to string using description
 * This method will add object in values array until url length reach given limit.
 * When limit is reached, a new URL is computed.
 */
+ (NSArray *)computeURLsFromBase:(NSString *)baseURLStr addingValues:(id <NSFastEnumeration>)values separator:(NSString *)separator maxLength:(NSInteger)maxLength;

/* Compute urls based on baseURL, with concatened values.
 * value are converted to string using description
 * For each computed url, block will be called, with computed url and concatened values.
 * The block can return an object.
 * Method result will contained all returned objects computed by block.
 * Usefull to compute Server actions
 *
 */
+ (NSArray *)enumerateURLsFromBase:(NSString *)baseURLStr addingValues:(id <NSFastEnumeration>)values separator:(NSString *)separator maxLength:(NSInteger)maxLength block:(id (^)(NSString *urlStr, NSArray *contatenedValues))block;

##UIKit ###GON_UIColor+Utils

/* Return best matching foreground color according to current color.
 * Will return black or white, based on color brightness
 */
- (UIColor *)foregroundColor;

###GON_UIControl+Utils

/* Remove all targets for given control events */
- (void)removeAllTargetsForControlEvents:(UIControlEvents)controlEvents;

/* Remove all targets */
- (void)removeAllTargets;

###GON_UIDevice+Information

@property (nonatomic, readonly) NSString *platform;
@property (nonatomic, readonly) NSUInteger coresCount;

###GON_UIImage+Colors

/* Return a grayscale version of image. Return nil if an error occurred */
- (UIImage *)grayscale;

###GON_UIImage+Utils

/* Return size of an image at given path, without loading it into memory */
+ (CGSize)sizeForImageAtPath:(NSString *)path;

/* Return size of an image at given url, without loading it into memory */
+ (CGSize)sizeForImageAtURL:(NSURL *)url;

/* Return NSData PNG image representation */
- (NSData *)pngRepresentationData;

/* Return NSData JPG image representation */
- (NSData *)jpgRepresentationData:(CGFloat)compression;

###GON_UILabel+AttributedFitting

/* Update label text and allow to fit its frame in order to display all text on multiples lines, keeping current width.
 * This method return new label height */
- (CGFloat)setAttributedText:(NSAttributedString*)text fitToDisplayText:(BOOL)fitting;

/* Update label frame in order to display all text on multiples lines, keeping current width.
 * This method return new label height */
- (CGFloat)fitLabelToDisplayAttributedText;

/* Update label text and allows to fit its frame in order to display all text on a single lines.
 * This method return new label width */
- (CGFloat)setAttributedText:(NSAttributedString*)text fitWidthToDisplayText:(BOOL)fitting;

/* Update label text and allows to fit its frame in order to display as many text as possible constrained by given height.
 * This method return new label height */
- (CGFloat)setAttributedText:(NSAttributedString*)text fitToDisplayText:(BOOL)fitting withMaxHeight:(CGFloat)height;

/* Update label text and allows to fit its frame in order to display as many text as possible constrained by given width.
 * This method return new label width */
- (CGFloat)setAttributedText:(NSAttributedString*)text fitWidthToDisplayText:(BOOL)fitting withMaxWidth:(CGFloat)width;

/* Update label text and allows to fit its frame in order to display as many text as possible constrained by given height.
 * This method return new label height */
- (CGFloat)setAttributedText:(NSAttributedString*)text fittingWithMaxHeight:(CGFloat)height;

/* Update label text and allows to fit its frame in order to display as many text as possible constrained by given width.
 * This method return new label width */
- (CGFloat)setAttributedText:(NSAttributedString*)text fittingWithMaxWidth:(CGFloat)width;

/* Update label frame in order to display all text on a single line.
 * This method return new label width */
- (CGFloat)fitLabelWidthToDisplayAttributedText;

/* Update label frame in order to display as many text as possible on a single line, constrained by given width
 * If displayed text is less larger than label frame, label frame will be shrinked.
 * This method return new label width */
- (CGFloat)fitAttributedLabelToMaxWidth:(CGFloat)width;

/* Update label frame in order to display as many text as possible on multiple lines, constrained by given height
 * If displayed text is less larger than label frame, label frame will be shrinked.
 * This method return new label height */
- (CGFloat)fitAttributedLabelToMaxHeight:(CGFloat)height;

###GON_UILabel+Fitting

/* Update label text and allow to fit its frame in order to display all text on multiples lines, keeping current width.
 * This method return new label height */
- (CGFloat)setText:(NSString*)text fitToDisplayText:(BOOL)fitting;

/* Update label frame in order to display all text on multiples lines, keeping current width.
 * This method return new label height */
- (CGFloat)fitLabelToDisplayText;

/* Update label text and allows to fit its frame in order to display all text on a single lines.
 * This method return new label width */
- (CGFloat)setText:(NSString*)text fitWidthToDisplayText:(BOOL)fitting;

/* Update label text and allows to fit its frame in order to display as many text as possible constrained by given height.
 * This method return new label height */
- (CGFloat)setText:(NSString*)text fitToDisplayText:(BOOL)fitting withMaxHeight:(CGFloat)height;

/* Update label text and allows to fit its frame in order to display as many text as possible constrained by given width.
 * This method return new label width */
- (CGFloat)setText:(NSString*)text fitWidthToDisplayText:(BOOL)fitting withMaxWidth:(CGFloat)width;

/* Update label text and allows to fit its frame in order to display as many text as possible constrained by given height.
 * This method return new label height */
- (CGFloat)setText:(NSString*)text fittingWithMaxHeight:(CGFloat)height;

/* Update label text and allows to fit its frame in order to display as many text as possible constrained by given width.
 * This method return new label width */
- (CGFloat)setText:(NSString*)text fittingWithMaxWidth:(CGFloat)width;

/* Update label frame in order to display all text on a single line.
 * This method return new label width */
- (CGFloat)fitLabelWidthToDisplayText;

/* Update label frame in order to display as many text as possible on a single line, constrained by given width
 * If displayed text is less larger than label frame, label frame will be shrinked.
 * This method return new label width */
- (CGFloat)fitLabelToMaxWidth:(CGFloat)width;

/* Update label frame in order to display as many text as possible on multiple lines, constrained by given height
 * If displayed text is less larger than label frame, label frame will be shrinked.
 * This method return new label height */
- (CGFloat)fitLabelToMaxHeight:(CGFloat)height;

###GON_UINavigationController+Utils

/* Pop current view controller, animated. Same as popViewControllerAnimated:YES */
- (void)popViewControllerAnimated;

/* Pop to root view controller, animated. Same as popToRootViewControllerAnimated:YES */
- (void)popToRootViewControllerAnimated;

/* Pop current view controller, without animation. Same as popViewControllerAnimated:NO */
- (void)popViewController;

/* Pop to root view controller, without animation. Same as popToRootViewControllerAnimated:NO */
- (void)popToRootViewController;

###GON_UITableView+Reload

/* Reload visible rows with given row animation. 
 * Same as: 
 * [self reloadRowsAtIndexPaths:self.indexPathsForVisibleRows
 *			   withRowAnimation:animation];
 */
- (void)reloadVisibleRowsWithRowAnimation:(UITableViewRowAnimation)animation;

/* Reload row at given index path with an animation 
 * Same as : 
 * [self reloadRowsAtIndexPaths:[NSArray arrayWithObject:anIndexPath]
 *			   withRowAnimation:animation];
 */
- (void)reloadRowAtIndexPath:(NSIndexPath*)anIndexPath withRowAnimation:(UITableViewRowAnimation)animation;

###GON_UITableView+Cells

/* Insert one row at given index path */
- (void)insertRowAtIndexPath:(NSIndexPath *)indexPath withRowAnimation:(UITableViewRowAnimation)animation;

/* Delete one row from given index path */
- (void)deleteRowAtIndexPath:(NSIndexPath *)indexPath withRowAnimation:(UITableViewRowAnimation)animation;

###GON_UIView+Bounds

/* Update view bounds origin X */
- (void)updateBoundsX:(CGFloat)x;

/* Update view bounds origin Y */
- (void)updateBoundsY:(CGFloat)y;

/* Update view bounds size width */
- (void)updateBoundsWidth:(CGFloat)width;

/* Update view bounds size height */
- (void)updateBoundsHeight:(CGFloat)height;

/* Add incX to view bounds origin X */
- (void)addBoundsX:(CGFloat)incX;

/* Add incY to view bounds origin X */
- (void)addBoundsY:(CGFloat)incY;

/* Add incWidth to view bounds origin X */
- (void)addBoundsWidth:(CGFloat)incWidth;

/* Add incHeight to view bounds origin X */
- (void)addBoundsHeight:(CGFloat)incHeight;

###GON_UIView+Fitting

/* Update view frame, centering it vertically and horizontally compared to its superview
 */
- (CGRect)centerInSuperview;

/* Update view frame, centering it horizontally compared to its superview
 */
- (CGRect)centerHorizontallyInSuperview;

/* Update view frame, centering it vertically compared to its superview
 */
- (CGRect)centerVerticallyInSuperview;


/* Change view frame to fill its superview frame :
 */
- (CGRect)fillInSuperview;

/* Change view frame to fill its superview width :
 */
- (CGRect)fillInSuperviewWidth;

/* Change view frame to fill its superview height :
 */
- (CGRect)fillInSuperviewHeight;

###GON_UIView+Frame

/* Update view frame origin */
- (void)updateFrameOrigin:(CGPoint)origin;

/* Update view frame size */
- (void)updateFrameSize:(CGSize)size;

/* Update view frame origin X */
- (void)updateFrameX:(CGFloat)x;

/* Update view frame origin Y */
- (void)updateFrameY:(CGFloat)y;

/* Update view center X */
- (void)updateCenterX:(CGFloat)x;

/* Update view center Y */
- (void)updateCenterY:(CGFloat)y;

/* Update view frame size width */
- (void)updateFrameWidth:(CGFloat)width;

/* Update view frame size height */
- (void)updateFrameHeight:(CGFloat)height;

/* Add incX to view frame origin X */
- (void)addFrameX:(CGFloat)incX;

/* Add incY to view frame origin X */
- (void)addFrameY:(CGFloat)incY;

/* Add incWidth to view frame origin X */
- (void)addFrameWidth:(CGFloat)incWidth;

/* Add incHeight to view frame origin X */
- (void)addFrameHeight:(CGFloat)incHeight;

###GON_UIView+Utils

/* Return an image created from view */
- (UIImage *)imageFromView;

###GON_UIViewController+Utils

/* Dismiss current modal view controller, animated. Same as dismissViewControllerAnimated:YES completion:nil */
- (void)dismissViewControllerAnimated;

/* Dismiss current modal view controller, without animation. Same as dismissViewControllerAnimated:NO completion:nil */
- (void)dismissViewController;

###GON_UIScrollView+Fitting

/* Center content vertically by adding insets 
 * If content is larger than scrollview, nothing is done
 */
- (void)addInsetsToCenterVertically;

/* Center content horizontally by adding insets
 * If content is higher than scrollview, nothing is done
 */
- (void)addInsetsToCenterHorizontally;

/* Center content by adding insets */
- (void)addInsetsToCenter;

###GON_UITextView+Fitting

// Empty for now

###GON_UITextView+AttributedFitting

/* Update textview text and allow to fit its frame in order to display all text on multiples lines, keeping current width.
 * This method return new textview height */
- (CGFloat)setAttributedText:(NSAttributedString*)text fitToDisplayText:(BOOL)fitting;

/* Update textview text and allows to fit its frame in order to display all text on a single lines.
 * This method return new textview width */
- (CGFloat)setAttributedText:(NSAttributedString*)text fitWidthToDisplayText:(BOOL)fitting;

/* Update textview text and allows to fit its frame in order to display as many text as possible constrained by given height.
 * This method return new textview height */
- (CGFloat)setAttributedText:(NSAttributedString*)text fitToDisplayText:(BOOL)fitting withMaxHeight:(CGFloat)height;

/* Update textview text and allows to fit its frame in order to display as many text as possible constrained by given width.
 * This method return new textview width */
- (CGFloat)setAttributedText:(NSAttributedString*)text fitWidthToDisplayText:(BOOL)fitting withMaxWidth:(CGFloat)width;

/* Update textview text and allows to fit its frame in order to display as many text as possible constrained by given height.
 * This method return new textview height */
- (CGFloat)setAttributedText:(NSAttributedString*)text fittingWithMaxHeight:(CGFloat)height;

/* Update textview text and allows to fit its frame in order to display as many text as possible constrained by given width.
 * This method return new textview width */
- (CGFloat)setAttributedText:(NSAttributedString*)text fittingWithMaxWidth:(CGFloat)width;

##StoreKit ###GON_SKProduct+Utils

/* Return localized price to be displayed to user */
- (NSString *)localizedPrice;

##Versions 0.5 : Initial release

About

Objective-C categories, used for years in my projects.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Objective-C 99.3%
  • Ruby 0.7%