andrewsardone + cocoa   85

ios - UITableViewCell skipped in responder chain - Stack Overflow
There’s some trickery involved to get a UITableViewCell or a UICollectionViewCell to intercept actions forwarded up the responder chain for one of its subviews.

After discussing things with, I think we determined that the best way to implement the intercept-action-and-forward-along-with-cell-as-sender is the following:

// Seemingly required for this UICollectionViewCell to opt-in as a next responder
// for actions without the UICollectionView running the show.
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
return (sender != self) ? [self respondsToSelector:action] : NO;

- (IBAction)didSelectCardActionCall:(id)sender {
[[UIApplication sharedApplication] sendAction:@selector(didSelectCardActionCall:)

- (IBAction)didSelectCardActionEmail:(id)sender {
[[UIApplication sharedApplication] sendAction:@selector(didSelectCardActionEmail:)
responder_chain  cocoa  UITableViewCell  UICollectionViewCell  iOS 
may 2015 by andrewsardone
Easily convert between dictionaries and [HTTP] query strings in iOS and OS X.
objective-c  ios  cocoa  http  NSDictionary  swift 
february 2015 by andrewsardone
React.js Conf 2015 Keynote 2 - A Deep Dive into React Native - YouTube
A more in-depth (but still minimal) demo of React Native. It’s exciting, but still not enough info.
reactjs  ReactNative  facebook  ios  video  cocoa 
january 2015 by andrewsardone
Manages blocks of code that only need to run once on version updates in iOS apps.
objective-c  cocoa  ios  github_repo 
august 2014 by andrewsardone
A code generator. Takes JSON templates describing a model, and turns them into Objective-C classes.

I’m not sure how this works just yet—there's very little documentation and I haven't jumped into the code—but I’m definitely watching this repo.
objective-c  cocoa  model  coredata  iOS 
april 2014 by andrewsardone Apple Claims Mogenerator’s Methods
The tl;dr; is a private Apple framework uses the open source library [mogenerator][mog]. Mogenerator adds some handy category methods to NSManagedContext, but since these methods exist within a private Apple framework they now look like private API to Apple's App Store validation tool.

Now people are finally coming around to namespaces being more than just needed by [“language wonks”][lw]. Naming techniques like class prefixes, underscores, or method name blemishes are not sustainable.

objective-c  ios  cocoa  coredata  namespaces  apple 
april 2014 by andrewsardone
An interactive iOS image viewer that does it all: double tap to zoom, flick to dismiss, et cetera.

Tweetbot-style fullscreen image viewing and flicking.
ios  ios7  github_repo  UIImageView  UIViewController  UIKit  UIImage  cocoa 
march 2014 by andrewsardone
Using -rac_valuesAndChangesForKeyPath:options:observer: with -mutableArrayValueForKey:
A periodic reminder to manimuplate collections (like NSArray) through the proxy returned by -mutableArrayValueForKey:. That way, you'll get granular KVO notifications for changes, and then in Reactive Cocoa land you can get a signal for those changes via -rac_valuesAndChangesForKeyPath:options:observer:
kvo  cocoa  objective-c  ReactiveCocoa  NSArray 
march 2014 by andrewsardone
FXForms is an Objective-C library for easily creating table-based forms on iOS. It is ideal for settings pages, or user data entry tasks.
github_repo  formobject  form  UITableView  UIKit  ios  cocoa 
march 2014 by andrewsardone
Quick Look Debugging with UIView - Ben Scheirman
This is included in UIViewController's view property, but you can add it to any UIView with a simple category.
xcode  cocoa  iOS  objective-c  debugger 
march 2014 by andrewsardone
Configrable and automated Xcode project settings.
xcode  cocoa  ios  configuration  github_repo 
february 2014 by andrewsardone
A Guide to Core Data Concurrency
Straight to the point run down private and main queue NSManagedObjectContexts and two distinct setups for handling syncing between the two via save notifications parent-child relationships. I don't think the two setups are mutually exclusive, and the best setup involves save notifications between a private and main context, and then ad-hoc child contexts off of those two "root" contexts.
coredata  concurrency  nsmanagedobjectcontext  cocoa 
february 2014 by andrewsardone
ARAnalytics is to iOS what Analytical is to ruby, or Analytics.js is to javascript. ARAnalytics is a CocoaPods only library, which provides a sane API for tracking events and some simple user data.
cocoa  ios  analytics  github_repo 
february 2014 by andrewsardone
Model-View-ViewModel for iOS | Teehan+Lax
The more I work with it the more I'm all about MVVM. When I gave my ‘Fixing your MVC’ talk, a lot of the principles were based on a sort of view-model-like setup.

These similarities and nuances on where you draw the line are important because we're all just trying to build better software. W'hat I do find annoying, though, is this common sleight of hand used by iOS developers with large UIViewControllers *and* proponents of MVC:
Under MVC, all objects are classified as either a model, a view, or a controller. Models hold data, views present an interactive interface to the user, and view controllers mediate the interaction between the model and the view.

There's this conflation that controller equals ‘view controller’, but that doesn't have to be the case! What's an NSFetchedResultsController? What's your APIClient class? They're all just controllers, it's just that too many developers just equate controller with UIViewController.
mvc  MVVM  programming  cocoa  objective-c  design 
january 2014 by andrewsardone
A serial iOS operation queue that pauses when offline and persists unfinished operations between launches.
cocoa  NSOperation  offline  queue 
january 2014 by andrewsardone
Drop-in compile-time key paths via a macro
From the guys at Square, it's a similar strategy to what the [extobjc] guys use. Something like this should be included in every project. It definitely beats plain old NSStrings or the NSStringFromSelector strategy as noted by [NSHipster].

kvo  kvc  objective-c  cocoa  macro 
january 2014 by andrewsardone
Q Branch’s collection of Cocoa categories and utilities.
objective-c  cocoa  github_repo  ios 
december 2013 by andrewsardone
lock-based animations made easy, comes with easing functions and a CASpringAnimation replacement.
animation  cocoa  coreanimation  ios  github_repo 
november 2013 by andrewsardone
Key-Value Observing for the mainstream | Damien DeVille
Clarifies some errors in the NSHipster post on [key-value observing][nh]. These nuances of the KVO API should be all the more reason to use something like [THObserversAndBinders]

kvo  cocoa 
october 2013 by andrewsardone
Chris Eidhof | Lightweight Key-Value Observing
A good example of encapsulating a lot of the boilerplate and awkwardness around Cocoa's key-value observing API inside of a simple Observer object. This Observer object can handle registration and removal of observers, as well as provide a more target-action-like dispatch system.

A reminder that [THObserversAndBinders][thoab] is a good implementation of this pattern, and probably a go-to requirement for any app that's taking advantage of KVO.

kvo  objective-c  cocoa  oop  encapsulation 
october 2013 by andrewsardone
BitSuites/BPBarButtonItem · GitHub
A tool for making awesome looking custom UIBarButtonItems on the fly.
uikit  ios  cocoa  uibarbuttonitem  design  via:github  github_repo 
may 2013 by andrewsardone
UICOLOR_FROM_HEX – When your designers give you hex codes for colors, use this macro
A simple little macro that shifts the components of a hex color value into the rgb values that -[UIColor colorWithRed:green:blue:alpha:] expects.
ios  uikit  uicolor  cocoa  macro 
may 2013 by andrewsardone
michaeltyson/TPKeyboardAvoiding · GitHub
A drop-in universal solution for moving text fields out of the way of the keyboard in iOS

Not only that, but it wires up the 'Next' button.
ios  cocoa  uiscrollview  uitableview  via:github  github_repo  uitextfield 
may 2013 by andrewsardone
andrewsardone/RACMobiDevDay · GitHub
Example code and slides from the MobiDevDay 2013 presentation on ReactiveCocoa
ReactiveCocoa  reactiveprogramming  frp  ios  cocoa 
may 2013 by andrewsardone
Twitter / joshaber: One of the great things about ...
One of the great things about ReactiveCocoa is that it forces you to consider and make explicit all the things that effect a value.
ReactiveCocoa  reactiveprogramming  frp  cocoa 
may 2013 by andrewsardone
toursprung/TSMessages · GitHub
«Easy to use and customizable messages/notifications for iOS à la Tweetbot»
cocoa  ios  uikit  notifications  uialertview  via:github  github_repo 
april 2013 by andrewsardone · Logging with Xcode Breakpoints
An nice alternative to peppering NSLog statements in your code.
xcode  cocoa  ios  debugger  nslog  logging 
april 2013 by andrewsardone
A central repository of documentation for CocoaPods.
cocoa  ios  documentation  cocoapods 
april 2013 by andrewsardone
Background Managed Object Context Staggers UI Animation - Stack Overflow
A good thread on staggering UIs hooked up with an NSFetchedResultsController after large imports and saves.

One answer was intriguing because it suggested giving your NSFRC a private queue MOC and handling UI-related delegate methods (e.g., -controllerDidChangeContent:) within a `dispatch_async` that grabs the main queue:

- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller {
dispatch_async(dispatch_get_main_queue(), ^{
[tableView beginUpdates];

First, is this legit? It would probably be made easier by another object that wraps all NSFRC operations and exposes a single delegate callback for fetched results changes. Secondly, I take it this NSFRC's private queue MOC is a child or sibling of the MOC handling the large import work – how does the NSFRC's private queue MOC get changes? Should someone be listening for the parent/sibling MOC's changes and forwarding a -performFetch: message to the NSFRC?

I also wonder if this setup could be improved with the private-queue-writer-context outlined here:
cocoa  coredata  iOS  nsmanagedobjectcontext  nsfetchedresultscontroller  gcd 
march 2013 by andrewsardone
There is a Bug in the NSFetchedResultsControllerDelegate Documentation – Ole Begemann
An example of why you shouldn't manually reconfigure a UITableViewCell within an NSFetchedResultsControllerDelegate method that wraps update changes within a -[UITableView beginUpdates]/-[UITableView endUpdates] block, but should instead just tell the UITableView to reload the rows at the updated index paths:

case NSFetchedResultsChangeUpdate:
[self reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
cocoa  coredata  ios  nsfetchedresultscontroller 
february 2013 by andrewsardone
Cocoa Dev Central: Core Data Class Overview
A little out of date, but still some good diagrams.
coredata  cocoa 
february 2013 by andrewsardone
UITableView and NSFetchedResultsController: Updates Done Right | Core Fruition
Seemingly a much nicer implementation of reacting to NSFetchedResultsControllerDelegate events with UITableView updates.
cocoa  uikit  uitableview  nsfetchedresultscontroller  coredata  iOS 
february 2013 by andrewsardone
square/objc-TimesSquare · GitHub
TimesSquare is an Objective-C calendar view
A UITableView-based calendar UI.

Introductory blog post:
ios  uikit  ui  cocoa  via:github  github_repo 
february 2013 by andrewsardone
nst/iOS-Runtime-Headers · GitHub
iOS Objective-C headers as derived from runtime introspection

You can search the headers with github search:
ios  development  cocoa  API  via:github  github_repo 
february 2013 by andrewsardone
Down with Magic Strings! | Cocoa Is My GirlfriendCocoa Is My Girlfriend
A clever trick that uses a preprocessing script to declare a bunch of #defines for potential UIImage resources that not only returns a new UIImage but asserts that the file is there. This is incredibly useful for autocompletion and compile-time checking of proper UIImage resources.
xcode  ios  cocoa  uiimage 
february 2013 by andrewsardone
Cue/hookshot · GitHub

hookshot uses Objective C runtime hooks to help you understand where your app is spending its time.

hookshot contains an instrumenting profiler. Contrary to its name, Apple's profiler in Instruments is actually a sampling profiler. We find both useful for different occasions. Specifically, we find hookshot most useful for:

Thread activity graphs with drill-in

Seeing accurate counts of calls

More precise per-call timings of messages

Measurement of messages with highly variable performance

hookshot also contains utilities for counting live instances of classes you care about and generic message instrumentation.

I need to play around with this and see what kind of insight it can provide beyond Instruments's time profiler.
xcode  instruments  ios  cocoa  performance  profiling 
january 2013 by andrewsardone
pkluz/PKRevealController · GitHub
The evolution of ZUUIRevealController, my previously favorite slide-out navigation/underbar/reveal controller implementation. The code looks solid, but as of 2013-01-24 I haven't used it in a project.
ios  cocoa  uikit  reveal-controller 
january 2013 by andrewsardone

GIKPopoverBackgroundView is a UIPopoverBackgroundView subclass which shows how to customise the background of a UIPopoverController.
ios  cocoa  uipopovercontroller  ipad  uikit  via:github  github_repo 
january 2013 by andrewsardone
Behind enemy lines: 3 months as an iOS developer at Google | Splinter Software
[.pbxproj files] weren’t checked into source control. Instead, there’s a Google open-source tool called GYP that generates your Xcode project from a JSON recipe and recursively searching the folders for source files. Worked pretty well, except that GYP is poorly documented and not able to perform certain project configurations (eg per-file -fno-objc-arc).

This seems to have its advantages of the traditional Xcode-project file workflow. I like Jonathan Penn's idea of building a similar tool around the xcodeproj Ruby gem:
Xcode  cocoa  ios  from instapaper
january 2013 by andrewsardone
NSFetchedResultsController -sectionNameKeyPath discussion | Cocoa Is My GirlfriendCocoa Is My Girlfriend
The bigger takeaway (for me) from this article was the launch argument to log Core Data's SQL statements:

- In Xcode, go to the Product menu and choose Edit Scheme.
- Select Debug on the left.
- Select Arguments on the right.
- Under Arguments Passed On Launch, click the add button.
- Enter: 1
- Click OK.
coredata  cocoa  nsfetchedresultscontroller  sql  logging 
january 2013 by andrewsardone
Variable Qualifiers in ARC – Apple Developer Center
ARC adds additional type qualifiers known as “lifetime qualifiers” for variables (used just like `const`):

- __strong (the default) – An object remains “alive” as long as there is a strong pointer to it.
- __weak – a reference that does not keep the referenced object alive. A weak reference is set to nil when there are no strong references to the object.
- __unsafe_unretained – a reference that does not keep the referenced object alive and is not set to nil when there are no strong references to the object. If the object it references is deallocated, the pointer is left dangling.
- __autoreleasing – denote arguments that are passed by reference (id *) and are autoreleased on return.

«You should decorate variables correctly. When using qualifiers in an object variable declaration, the correct format is:

ClassName * qualifier variableName;»

The example Apple's documentation uses:

MyClass * __weak myWeakReference;
MyClass * __unsafe_unretained myUnsafeReference;

Note the placement of __weak, specifically how it qualifies the pointer to MyClass and not MyClass as is usually seen in a lot of code:

MyClass * __weak myWeakReference; // correct
__weak MyClass *myWeakReference; // wrong

Apple even alludes to this common mistake and why it still “works”:

«Other variants are technically incorrect but are “forgiven” by the compiler. To understand the issue, see ªª»ºº

Also, nice shout out to ridiculous_fish from Apple's documentation.
objective-c  arc  c  cocoa  typequalifier  memorymanagement 
december 2012 by andrewsardone
ARC Best Practices
A good collection of some of ARC tougher and less refined points. I particularly like, for reference, the section on bridging memory-semantics:

id my_id;
CFStringRef my_cfref;
NSString *a = (__bridge NSString*)my_cfref; // Noop cast.
CFStringRef b = (__bridge CFStringRef)my_id; // Noop cast.
NSString *c = (__bridge_transfer NSString*)my_cfref; // -1 on the CFRef
CFStringRef d = (__bridge_retained CFStringRef)my_id; // returned CFRef +1

- __bridge is a noop (with respect to memory management)
- __bridge_transfer is for changing CF references to Objective C objects. ARC will release the ObjC object for you. Make sure that the CFRef has +1 retain count.
- __bridge_retained is for changing Objective C objects to CF references. This will effective give you a CF reference with a +1 retain count. You are responsible for calling CFRelease on the CFRef at some point in the future.

It also good to note the compiler's behavior around NSError out-parameters (indirect pointers) and ARC autoreleasing:

«In ARC, out-parameters are by default __autoreleasing [i.e., passed-by-refernces that are autoreleased on return] and should [add the __autoreleasing ownership qualifier to their declaration]…If you forget the __autoreleasing, the compiler will simply insert a temporary, intermediate autoreleasing object for you. This was a compromise made under the oppressive regime of backwards compatibility. I have seen some compiler configurations which do not automatically make them __autoreleasing. It is safer to include the __autoreleasing for all new code.»
objective-c  cocoa  arc  c 
december 2012 by andrewsardone
github/Archimedes · GitHub
«Archimedes contains useful geometry functions for your Cocoa or Cocoa Touch application.»

This is looking more like a must-have dependency for any iOS project that messes around with a view's frame (i.e., all projects).
ios  cocoa  objective-c  coregraphics  layout 
december 2012 by andrewsardone
How to avoid big and clumsy UITableViewController on iOS?
A good answer from Graham Lee on separating the different concerns of a view controller and a UITableView (and its various data source and delegate components).

Lee builds upon the good common practice of breaking UITableViewDataSource/UITableViewDelegate implementations out of your view controller and into separate objects and provides some additional opinions and best practices:

1.) The UiTableViewDataSource object should expose an additional interface:

-(id)tableView: (UITableView *)tableView representedObjectAtIndexPath: (NSIndexPath *)indexPath

This provides a mechanism to grab the object that's mapped to the given index path within the table view.

2.) The next bit involves improving the creation of different UITableViewCell objects for the different represented objects at various index paths. Lee does this by adding category methods to his represented objects that decorate the model with UITableViewCell generation abilities. This way he can grab the represented object at the given index path, and then execute something like:

return [object tableView:tableView representationAsCellForRowAtIndexPath:indexPath];

within -[UITableViewDataSource tableView:cellForRowAtIndexPath:]
ios  cocoa  uitableview  designpattern  uiviewcontroller  decoratorpattern 
december 2012 by andrewsardone
rsms/LazyDispatch · GitHub
“A very thin API + concepts on top of libdispatch (aka Grand Central Dispatch) for Cocoa Objective-C code.”

It's built around a LazyDispatch object, some more concise GCD typedefs, and some handy function-like macros that take a block argument and hand it to the LazyDispatch object for queueing:

sched_background ^{ /* some work */ }

// does...

[LazyDispatch schedBackground].block = ^{ /* some work */ }

// which is similar to

dispatch_queue_t parentQueue = dispatch_get_current_queue();
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ /* some work */ };
gcd  cocoa  blocks  dsl  objective-c 
december 2012 by andrewsardone
lukeredpath/LRFetchedResultSet · GitHub
From Luke Redpath, this returns an auto-updating set of results from executing a Core Data fetch request.

A category on NSManagedObjectContext provides the LR_executeFetchRequestAndReturnResultSet:error: message which executes the fetch request and returns the resulting objects wrapped in an instance of LRFetchedResultSet.

You can observe changes to the result via a block.
coredata  nsmanagedobjectcontext  cocoa  bindings 
december 2012 by andrewsardone
rentzsch/JREnum · GitHub
macros that automate vending an NSString given an enum value (f.x. NSStringFromMyEnum(value))
objective-c  c  nsstring  cocoa  ios 
december 2012 by andrewsardone
th-in-gs/THObserversAndBinders · GitHub
Easy, lightweight, object-based key-value observing (KVO) and key-value binding (KVB) for iOS and Mac OS X.

Observing and binding is built-up via simple and well-encapsulated objects, THObserver and THBinder. You simply declare the observed object/keypath and hand the THObserver/THBinder a block of code (with options) or NSValueTransformer that's executed upon observable events.

THObserver *observer = [THObserver observerForObject:object keyPath:@"propertyToObserve" block:^{
NSLog(@"propertyToObserve changed, is now %@", object.propertyToObserve);
cocoa  kvo  objective-c  ios  bindings  github_repo 
december 2012 by andrewsardone
A small library for semantic layout of UIViews. It mixes into all UIViews a frame builder object that can manage and manipulate a view's frame.
uikit  ios  layout  cocoa 
december 2012 by andrewsardone
UIView Frame helper getter/setter category methods — Gist
Convenient setters and getters for a UIView's frame properties.


someView.$x = otherView.$right
uikit  ios  layout  cocoa 
december 2012 by andrewsardone
Using the AWS Persistence Framework for Core Data : Articles & Tutorials : Amazon Web Services
An NSIncrementalStore implementation (like AFIncrementalStore) backed by Amazon's DynamoDB.
coredata  nsincrementalstore  cocoa 
november 2012 by andrewsardone
Functional Cocoa Collections
rentzsch metions:

- RXCollections
- HBCollections
- BlocksKit
- Underscore.m
cocoa  objective-c  ios  mapreduce  functional 
november 2012 by andrewsardone
mindsnacks/MSCachedAsyncViewDrawing · GitHub
Helper class that allows you to draw views (a)synchronously to a UIImage with caching for great performance.

It provides a message implemented for associating wit a cache key a drawing routine that renders a UIImage with a given size and background color:

-[MSCachedAsyncViewDrawing drawViewAsyncWithCacheKey:size:backgroundColor:drawBlock:completionBlock:]

And the last two arguments are of the block types below:

typedef void (^MSCachedAsyncViewDrawingDrawBlock)(CGRect frame);
typedef void (^MSCachedAsyncViewDrawingCompletionBlock)(UIImage *drawnImage);
cocoa  uikit  gcd  uiimage 
november 2012 by andrewsardone
NSValueTransformer : NSHipster
NSValueTransformer is an abstract class that provides a registration mechanism for mapping (reversible) transformations across data. TransformerKit adds a block-based API for simpler registration.
cocoa  objective-c  blocks 
november 2012 by andrewsardone
luisobo/Nocilla · GitHub
An HTTP stubbing tool for iOS, allowing you to fake HTTP responses for certain requests. It intelligently creates and manages concrete NSURLProtocol instances for you to return your fake responses for your requests.
cocoa  objective-c  testing  tdd  http  tools 
november 2012 by andrewsardone
An iOS 6 class-dump[1] exposing all of the runtime objects' interfaces

ios  development  cocoa  objective-c 
september 2012 by andrewsardone
Multi-Context CoreData | Cocoanetics
Some good demonstrations on using parent-child managed object contexts. The 'Asynchronous Saving' section is particularly interesting. It outlines an approach of parent-child managed object contexts where an NSPrivateQueueConcurrencyType context is used exclusively for writing to disk. This private queue c
This smart approach uncouples the writing into its own private queue and keeps the UI smooth as button.

Simply move the persistent store coordinate to the private writer MOC and make the main MOC (used from your main, UI thread) a child of this

// create writer MOC
_privateWriterContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
[_privateWriterContext setPersistentStoreCoordinator:_persistentStoreCoordinator];

// create main thread MOC
_managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
_managedObjectContext.parentContext = _privateWriterContext;
We now have to do 3 saves for every update: temporary MOC, main UI MOC and for writing it to disk. But just as easy as before we can stack the performBlocks. The user interface stays unblocked during the lengthy database operation (e.g. import of lots of records) as well as when this is written do disk.
cocoa  coredata  nsmanagedobjectcontext  iOS 
september 2012 by andrewsardone
« earlier      
per page:    204080120160

related tags

afincrementalstore  analytics  animation  API  apple  arc  async  autolayout  bindings  blocks  c  clothing  cocoa  cocoapods  community  complexity  concurrency  configuration  coreanimation  coredata  coregraphics  debugger  decoratorpattern  design  designpattern  development  documentation  dsl  dtrace  encapsulation  facebook  form  formobject  frp  functional  functionalprogramming  gcd  gcov  git  github  github_repo  goos  http  humor  immutability  instruments  ios  ios7  ipad  kvc  kvo  layout  library  logging  mac  macro  mapreduce  memorymanagement  model  mvc  MVVM  namespaces  networking  notifications  NSArray  NSDictionary  nsfetchedresultscontroller  nsincrementalstore  nslog  nsmanagedobjectcontext  NSOperation  nsstring  objective-c  offline  oop  open-source  osx  performance  profiling  programming  promises  queue  react  reactive  ReactiveCocoa  reactiveprogramming  reactjs  ReactNative  responder_chain  reveal-controller  signature  sql  state  swift  tdd  testing  tool  tools  tshirt  tutorial  typequalifier  ui  uialertview  uiappearance  uiautomation  uibarbuttonitem  UICollectionViewCell  uicolor  uiimage  UIImageView  uikit  uipopovercontroller  uiscrollview  uitableview  UITableViewCell  uitextfield  UITextView  uiview  uiviewcontroller  via:cdzombak  via:github  video  wishlist  xcode 

Copy this bookmark: