Skip to content

Instantly share code, notes, and snippets.

View TimOliver's full-sized avatar
😆
Out for a byte. Back in a bit.

Tim Oliver TimOliver

😆
Out for a byte. Back in a bit.
View GitHub Profile
@TimOliver
TimOliver / UIScrollView+ZoomToPoint.m
Created August 2, 2013 07:25
A small category for UIScrollView to programatically zoom to a CGPoint as opposed to a CGRect. Currently in use in my iOS app, iComics (http://icomics.co)
@implementation UIScrollView (ZoomToPoint)
- (void)zoomToPoint:(CGPoint)zoomPoint withScale: (CGFloat)scale animated: (BOOL)animated
{
//Normalize current content size back to content scale of 1.0f
CGSize contentSize;
contentSize.width = (self.contentSize.width / self.zoomScale);
contentSize.height = (self.contentSize.height / self.zoomScale);
//translate the zoom point to relative to the content rect
@TimOliver
TimOliver / TODrawInsetBevelRoundedRect.c
Last active February 13, 2016 08:40
A C function demonstrating how to draw the iOS 5-6 beveled effect that was prevalent in grouped UITableView implementations.
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
drawRect.size.height -= 1.0f;
//Save the current state so we don't persist anything beyond this operation
CGContextSaveGState(context);
sudo sysctl -w kern.timer.coalescing_enabled=0
@TimOliver
TimOliver / ICComicLoader+PageOrdering.m
Last active August 29, 2015 14:10
This is the method used to sort the filenames of pages inside an archive for iComics v1.1.
- (NSComparisonResult)sortedArchiveEntryIndex:(NSString *)firstName againstIndex:(NSString *)secondName
{
//if first name is empty, assume ascending
if ([firstName length] == 0)
return NSOrderedAscending;
if ([secondName length] == 0)
return NSOrderedDescending;
//convert the names to raw bytes so they can be manually compared on a numerical basis

Keybase proof

I hereby claim:

  • I am TimOliver on github.
  • I am timoliver (https://keybase.io/timoliver) on keybase.
  • I have a public key whose fingerprint is E3FA 5C22 4002 BC25 C8E6 B8B5 96AB B712 3936 A658

To claim this, I am signing this object:

@TimOliver
TimOliver / UIScrollView+ZoomToPoint.m
Last active November 23, 2022 09:14
Zooming to a specific CGPoint inside a UIScrollView (2015 Edition)
@implementation UIScrollView (ZoomToPoint)
/**
Zooms into the specified point of the scroll view's zoomable content view at the supplied scaled.
(The zoomable content view is the view that is returned in `viewForZoomingInScrollView:`
@param zoomPoint - In terms of the scroll view's co-ordinate space, the point to zoom to
@param scale - A value between minimumZoomScale and maximumZoomScale in which to zoom to.
@param animated - Whether the transition is animated, or instant
Thread : Crashed: com.apple.main-thread
0 OpenGLES 0x0000000187b03930 +[EAGLContext setCurrentContext:] + 84
1 OpenGLES 0x0000000187b0391c +[EAGLContext setCurrentContext:] + 64
2 CoreImage 0x0000000184c28600 __is_gpu_A9_or_higher_block_invoke + 188
3 libdispatch.dylib 0x000000019999d770 _dispatch_client_callout + 16
4 libdispatch.dylib 0x000000019999e5b4 dispatch_once_f + 80
5 CoreImage 0x0000000184c28540 is_gpu_A9_or_higher + 60
6 CoreImage 0x0000000184c08ad8 CI::GLContext::surface_rowbytes_alignment_for_output(CI::PixelFormat) const + 24
7 CoreImage 0x0000000184c1be18 CI::_get_bitmap(CI::Context*, CI::Image*, CGRect, CGColorSpace*, CI::Bitmap*) + 140
8 CoreImage 0x0000000184c1bcdc CI::image_get_bitmap(CI::Context*, CI::Image*, CGRect, CGColorSpace*, CI::Bitmap*, unsigned long) + 732
@TimOliver
TimOliver / libdsm-ios.sh
Last active June 17, 2021 09:10
The Bash script I use to compile libDSM for iOS
#!/bin/bash
# Global build settings
export SDKPATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk
export SIMSDKPATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk
export MIN_IOS_VERSION=7.0
export HOST=arm-apple-darwin
export LDFLAGS_NATIVE="-isysroot $SDKPATH"
export LDFLAGS_SIMULATOR="-isysroot $SIMSDKPATH"
export TASN1_CFLAGS="-Ilibtasn1/include"
#!/bin/bash
# Global build settings
export SDKPATH=/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk
export SIMSDKPATH=/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator.sdk
export MIN_TVOS_VERSION=9.0
export HOST=arm-apple-darwin
export LDFLAGS_NATIVE="-isysroot $SDKPATH"
export LDFLAGS_SIMULATOR="-isysroot $SIMSDKPATH"
export TASN1_CFLAGS="-Ilibtasn1/include"
@TimOliver
TimOliver / lhasa-build-ios.sh
Last active June 10, 2016 09:34
A Bash script for building an iOS-compatible binary of the lhasa library
#!/bin/bash
# Global build settings
export SDKPATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk
export SIMSDKPATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk
export MIN_IOS_VERSION=7.0
export HOST=arm-apple-darwin
export LDFLAGS_NATIVE="-isysroot $SDKPATH"
export LDFLAGS_SIMULATOR="-isysroot $SIMSDKPATH"
export TASN1_CFLAGS="-Ilibtasn1/include"