Skip to content

Instantly share code, notes, and snippets.

View myell0w's full-sized avatar
🙌

Matthias Tretter myell0w

🙌
View GitHub Profile
@jverkoey
jverkoey / UIView Layout
Last active May 16, 2020 02:51
Layout + size calculations for iOS.
- (CGSize)sizeOfContentsWithSize:(CGSize)size
shouldLayout:(BOOL)shouldLayout {
// Calculate frames.
if (shouldLayout) {
// Update frames.
}
return // size
}
@mbigatti
mbigatti / BMXRubberBanding.h
Last active December 11, 2015 07:08
iOS6 Rubber-banding Formula, as described by Grant Paul (chpwn) (ref. https://twitter.com/chpwn/status/285540192096497664)
//
// BMXRubberBanding.h
// Rubber-banding Formula, as described by Grant Paul (chpwn)
// https://twitter.com/chpwn/status/285540192096497664
//
#ifndef TimerApp_BMXRubberBanding_h
#define TimerApp_BMXRubberBanding_h
#define BMX_RUBBER_BANDING_CONSTANT 0.55
@drance
drance / gist:4546014
Created January 16, 2013 09:57
Workaround to vanilla UICollectionView+UICollectionViewFlowLayout using non-integral origins, leading to blurry cells.
@implementation BHSCollectionViewFlowLayout
- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect {
NSArray *allAttrs = [super layoutAttributesForElementsInRect:rect];
for (UICollectionViewLayoutAttributes *attributes in allAttrs) {
attributes.frame = CGRectIntegral(attributes.frame);
}
return allAttrs;
}
@krzysztofzablocki
krzysztofzablocki / gist:4396302
Last active November 24, 2021 19:17
Set symbol breakpoint on objc_msgSend then setup this debug command to log all methods called in iOS Simulator. If you want to do device debugging change esp+4 register to r0, esp+8 to r1 Found long ago somewhere on stackoverflow.
expr -- (void)printf("[%s, %s]\n",(char *) object_getClassName(*(long*)($esp+4)), (char *) *(long *)($esp+8) )
@steipete
steipete / gist:4233987
Created December 7, 2012 15:32
Print a CGPath
extern void CGPathPrint(CGPathRef path, FILE* file);
CGPathPrint(path.CGPath, NULL);
Path 0xb44e380:
moveto (-12, 295)
lineto (115, 295)
lineto (108, -12)
lineto (235, -12)
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
const CGFloat threshHold = -60.0f;
const float minOpacity = 0.2;
CGFloat currentOffset = [scrollView contentOffset].x;
if (currentOffset < 0.0)
{
CGFloat currentProgress = currentOffset / threshHold;
[scrollView setAlpha:MAX(1.0 - (1.0 * currentProgress), minOpacity)];
@steipete
steipete / gist:3933090
Created October 22, 2012 18:13
Simple main thread usage detector that I'm using in PSPDFKit to find performance problems early on.
// Smart little helper to find main thread hangs. Enable in appDidFinishLaunching.
// Only available with source code in DEBUG mode.
@interface PSPDFHangDetector : NSObject
+ (void)startHangDetector;
@end
@implementation PSPDFHangDetector
+ (void)startHangDetector {
#ifdef DEBUG
//
// NSString+Cheddar.m
// Cheddar
//
// Created by Sam Soffes on 6/10/12.
// Copyright (c) 2012 Nothing Magical. All rights reserved.
//
#import "NSString+Cheddar.h"
@odrobnik
odrobnik / gist:2872435
Created June 5, 2012 03:25
Inner Shadow on Label
- (void)drawTextInRect:(CGRect)rect
{
[super drawTextInRect:rect];
CGContextRef ctx = UIGraphicsGetCurrentContext();
NSString *fontName = self.font.fontName;
CGFloat fontSize = self.font.pointSize;
CTFontRef font = CTFontCreateWithName((__bridge CFStringRef)fontName, fontSize, NULL);
@jonsterling
jonsterling / Example.m
Created May 13, 2012 02:55
Safe keypaths without macros!
NSString *safe = self.keys.url.port.stringValue;
NSString *unsafe = @"url.port.stringValue";
assert([safe isEqualToString:unsafe]);