Skip to main content

Collection View - 2D Display

/*Nothing but dividing items into number of columns and rows */

sizeForItemAtIndexPath()

It returns the size for each item. In collection view, each cell is considered as item and not as rows or columns.
To make it 2D(columns and rows), distribute the collection view frame size into several item sizes, in such a way that x number of items can be placed in a single row.
For instance, if there are 50 items( 5 items in each row which is nothing but 5 columns in 1 row and there are 10 such rows).  Given collection view frame size is 1000.

Now this can be done by dividing the frame size by number of columns,  i.e., 1000/5 = 200. So each items width will be 200.

Comments

Popular posts from this blog

Running Database Fetch (Core Data) in Background Thread using magical Record

   To run database fetching in background thread(in a separate context), so that the UI does not get blocked: __block NSMutableArray *dataArray= [[NSMutableArray alloc] init];   // Create a child context of the main context   NSManagedObjectContext *privateContext = [NSManagedObjectContext MR_context];   // When using private contexts execute the core data code in it's private queue using performBlock: or performBlockAndWait:   [privateContext performBlock:^{     // Execute fetch   NSArray *privateObjects;   if(entity_predicate == nil) {       //fetch all! duh!       privateObjects = [self MR_findAllSortedBy:sort_key ascending:YES inContext:privateContext];     } else {       privateObjects = [self MR_findAllSortedBy:sort_key ascending:YES withPredicate:entity_predicate inContext:privateContext];   ...

Container View - Multiple View Controllers

       By default, Each Container View can have one child view controller only. Only one controller can be added to container using "Embed segue".       In order to add multiple view controller,  the following may help:      Use a separate container view controller and add it using embed segue to the container view. Now from the container view controller that is created, perform transition to different child view controllers using custom segues.

Percent Escape the reserved Characters in URI

URI encoding need to be done when performing network API calls based on RFC 3986. In order to encode any character, the following native method can be used: [uriString stringByAddingPercentEncodingWithAllowedCharacters : [ NSCharacterSet URLQueryAllowedCharacterSet ] ] But the above method is not compliant with RFC3986 and it does not encode the reserved characters like "!*'();:@&=+$,/?%#[]". Hence, the following method can be used for percent encoding the specific reserved characters. ((NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL, (__bridge CFStringRef) string, NULL,  CFSTR("!*'();:@&=+$,/?%#[]"), encoding))); }