Skip to content

Instantly share code, notes, and snippets.

extension Reactive where Base: UIViewController {
var viewDidLoad: Observable<Void> {
return self.sentMessage(#selector(Base.viewDidLoad)).map { _ in Void() }
}
var viewWillAppear: Observable<Bool> {
return self.sentMessage(#selector(Base.viewWillAppear)).map { $0.first as? Bool ?? false }
}
var viewDidAppear: Observable<Bool> {
import Foundation
import RxSwift
import Genome
import PureJsonSerializer
enum JsonError: String {
case CouldNotParseJSON
}
extension JsonError: ErrorType { }
@wanewang
wanewang / install.md
Last active June 10, 2021 02:43 — forked from hlb/Brewfile
clean install

System Preferences

# Enable character repeat on keydown
defaults write -g ApplePressAndHoldEnabled -bool false

# Display App Swithcer on all screens
defaults write com.apple.Dock appswitcher-all-displays -bool true

# Set a shorter Delay until key repeat		
@wanewang
wanewang / gist:c830c09af7d8eba6d1df
Last active January 4, 2016 16:50 — forked from bwhiteley/gist:049e4bede49e71a6d2e2
Initialize Swift subclass of UIView, designed in .xib
// Create CustomView.xib, set File's Owner to CustomView.
class CustomView : UIView {
// other outlets
override init(frame: CGRect) { // for using CustomView in code
super.init(frame: frame)
self.commonInit()
}
@wanewang
wanewang / customview.h
Last active August 29, 2015 14:27
custom view with ability to show xib in another view
#import <UIKit/UIKit.h>
IB_DESIGNABLE
@interface CustomView : UIView
@end
@wanewang
wanewang / multiasynctask.m
Last active August 29, 2015 14:17
An abstract about block with multi async task
// First
dispatch_group_t group = dispatch_group_create();
dispatch_group_async(group,dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ {
// block1
NSLog(@"Block1");
[NSThread sleepForTimeInterval:5.0];
NSLog(@"Block1 End");
});
@wanewang
wanewang / gist:3d5ac4b2fef72a92e07c
Created March 14, 2015 12:58
AVCaptureVideoPreviewLayer Zoomin
- (void)handlePinchGesture:(UIPinchGestureRecognizer *)gestureRecognizer {
if([gestureRecognizer state] == UIGestureRecognizerStateBegan) {
self.lastScale = self.effectiveScale;
}
self.effectiveScale = self.lastScale * gestureRecognizer.scale;
if (self.effectiveScale < 1.0) {
self.effectiveScale = 1.0;
}
@wanewang
wanewang / gist:f36278c0db6b41164288
Created September 5, 2014 07:56
for view layout
viewDidLoad() {
self.extendedLayoutIncludesOpaqueBars = YES;
self.edgesForExtendedLayout = UIRectEdgeNone;
}
@wanewang
wanewang / default.yaml
Last active August 29, 2015 14:04
需注意schema_list及 ascii_composer
# Rime default settings
# encoding: utf-8
config_version: "0.34"
# 原本的輸入法只有拼音
# 需修改schema_list
# 改成 bopomofo
schema_list:
- schema: bopomofo
Titanium.Facebook.requestWithGraphPath(ID + CONNECTION_TYPE, {
message : 'hello~'
}, "POST", function(e) {
if(e.success) {
alert('success');
} else if(e.error) {
alert(e.error);
} else {