Skip to content

Instantly share code, notes, and snippets.

Avatar
🍁

Karol S. Mazur ksm

🍁
View GitHub Profile
View ReusableCellExample.m
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell =
[tableView dequeueReusableCellWithIdentifier:REUSABLE_CELL_ID];
UILabel *label = (UILabel *)[cell viewWithTag:VIEW_TAG];
Model *someModel = [self getModelFromIndexPath:indexPath];
// `takeUntil:` makes the RACObserve() signal complete (and thus breaks the subscription)
// when the cell is recycled.
View gist:3526cac1682c7d165c42
/**
Provides the ability to verify key paths at compile time.
If "keyPath" does not exist, a compile-time error will be generated.
Example:
// Verifies "isFinished" exists on "operation".
NSString *key = SQKeyPath(operation, isFinished);
// Verifies "isFinished" exists on self.
@ksm
ksm / DrawView.h
Created Feb 14, 2012
DrawView with a block for drawRect: an alternative to subclassing UIView for simple drawing operations
View DrawView.h
/*
Copied and pasted from David Hamrick's blog.
Source: http://www.davidhamrick.com/2011/08/07/using-blocks-for-drawing-to-avoid-subclasssing-in-objective-c.html
*/
typedef void(^DrawView_DrawBlock)(UIView* v,CGContextRef context);
@interface DrawView : UIView
@ksm
ksm / gist:1830844
Created Feb 14, 2012
CoreGraphics UITableView iOS5 bevel effect function
View gist:1830844
/*
Copied and pasted from Tim Oliver's blog.
Source: http://www.tim-oliver.com/2011/10/23/creating-the-uitableview-bevel-effect-in-coregraphics/
*/
void DrawInsetBeveledRoundedRect(CGContextRef context, CGRect rect, CGFloat radius, UIColor *fillColor) {
//contract the bounds of the rectangle in to account for the stroke
CGRect drawRect = CGRectInset(rect, 1.0f, 1.0f);
//contract the height by 1 to account for the white bevel at the bottom
@ksm
ksm / debug.h
Created Feb 20, 2012
Xcode: how to debug the right way
View debug.h
// via @_bejo
// then just add a DEBUG = 1 to debug target in xcode
#ifdef DEBUG
#define DebugLog( s, ... ) NSLog( @"<%@:(%d)> %@", [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
#else
#define DebugLog( s, ... )
@ksm
ksm / gist:1869980
Created Feb 20, 2012
CALayer masking in drawLayer:inContext (to avoid layer.cornerRadius performance hit)
View gist:1869980
/*
Source: Apple Developer - Understanding iOS View Compositing
Note: setting view.layer.cornerRadius and .masksToBounds
sends the view for rending to an offscreen buffer.
We want to avoid unnecessary rendering passes.
Let the context do the work.
*/
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx {
CGRect rect = layer.bounds;
@ksm
ksm / gist:2152929
Created Mar 21, 2012
KVO granular notifications on NSMutableArray
View gist:2152929
/*
Thanks to @_bejo
*/
- (void)_insertGlobalRoomMessage:(id)msg atIndex:(NSUInteger)index
{
NSIndexSet *changeSet = [NSIndexSet indexSetWithIndex:index];
[self willChange:NSKeyValueChangeInsertion valuesAtIndexes:changeSet forKey:@"globalRoomMessages"];
[(NSMutableArray *)self.globalRoomMessages insertObject:msg atIndex:index];
[self didChange:NSKeyValueChangeInsertion valuesAtIndexes:changeSet forKey:@"globalRoomMessages"];
@ksm
ksm / .gitignore
Created May 16, 2012 — forked from kluivers/.gitignore
.gitignore for Xcode projects
View .gitignore
# .gitignore in use by Joris Kluivers
#
# Latest version:
# https://gist.github.com/gists/1923197
*.DS_Store
# Xcode
*.pbxuser
*.mode1v3
@ksm
ksm / gist:3689409
Created Sep 10, 2012
Enum with Fixed Underlying Type
View gist:3689409
/*
Enum with Fixed Underlying Type
New with Xcode 4.4
Via WWDC2012 Session 405 - Modern Objective-C
Results in better code completion and stronger type checking.
Use -Wconversion compiler flag to check for enum type errors.
-Wswitch for checking if switch statement is fully handled for enum.
*/
@ksm
ksm / gist:3689574
Created Sep 10, 2012
Constant literal container workaround
View gist:3689574
/*
Source: WWDC2012 Modern Objective-C talk
How to get a constant literal container to work.
*/
@implementation MyClass
static NSArray *thePlanets;
+ (void)initialize {