Skip to content

Instantly share code, notes, and snippets.

View hebertialmeida's full-sized avatar
✈️

Heberti Almeida hebertialmeida

✈️
View GitHub Profile

Keybase proof

I hereby claim:

  • I am hebertialmeida on github.
  • I am heberti (https://keybase.io/heberti) on keybase.
  • I have a public key whose fingerprint is EF27 C10A 4335 FA46 2063 EE36 B58F 7F1E 90FB 67C9

To claim this, I am signing this object:

@hebertialmeida
hebertialmeida / gist:9234391
Last active February 15, 2019 05:16
Resize UIView to fit subviews
- (void)resizeToFitSubviews:(UIView *)view
{
float w, h;
for (UIView *v in view.subviews) {
float fw = v.frame.origin.x + v.frame.size.width;
float fh = v.frame.origin.y + v.frame.size.height;
w = MAX(fw, w);
h = MAX(fh, h);
}
@hebertialmeida
hebertialmeida / TwitterText.swift
Created November 23, 2017 16:49
Twitter text counter 280 characters
import Foundation
struct WeightRange {
let range: ClosedRange<UInt32>
let weight: Int
}
struct TwitterText {
static func lengthOf(tweet: String) -> Int {
let defaultWeight = 200
### Keybase proof
I hereby claim:
* I am hebertialmeida on github.
* I am heberti (https://keybase.io/heberti) on keybase.
* I have a public key whose fingerprint is BC4D 8E00 C9D2 F132 128A F95F 2561 43B3 57D6 0E45
To claim this, I am signing this object:
@hebertialmeida
hebertialmeida / gist:d447903dbfc1cd85ae5d
Last active December 10, 2016 21:41
Given a set of names, sort them in the following manner the next word should start with the last letter of the previous word. Swift implementation.
import UIKit
var names = ["Luis", "Hector", "Selena", "Emmanuel", "Amish", "Rawle"]
var firsts = [String: String]()
var lasts = [String: String]()
var output = [String]()
for name in names {
var key = (name as NSString).substringFromIndex(name.utf16Count-1)
@hebertialmeida
hebertialmeida / gist:7548793
Created November 19, 2013 17:09
Set Keyboard Appearance of UISearchBar, iOS 5 to iOS 7
- (void)customKeyboardOnSearchBar:(UISearchBar *)searchBar
{
for(UIView *subView in searchBar.subviews) {
if([subView conformsToProtocol:@protocol(UITextInputTraits)]) {
[(UITextField *)subView setKeyboardAppearance:UIKeyboardAppearanceAlert];
[(UITextField *)subView setReturnKeyType:UIReturnKeyDone];
} else {
for(UIView *subSubView in [subView subviews]) {
if([subSubView conformsToProtocol:@protocol(UITextInputTraits)]) {
[(UITextField *)subSubView setReturnKeyType:UIReturnKeyDone];
@hebertialmeida
hebertialmeida / gist:f0b949835ba157ad2bb9
Created November 20, 2014 15:27
Finding the most common character in a string. Swift implementation.
import UIKit
var str = "aaaabbbaaaa * bbbb b bbbbbbb ccccccccdd ddddddd dddd"
var cnt = [String: Int]()
var i = 0
for char in str {
var c = String(char)
if let match = cnt[c] {
@hebertialmeida
hebertialmeida / gist:be0b689bf0370d5a2764
Created November 20, 2014 11:38
Given a dictionary of words, return an array of the words whose match. (i.e. pattern "c.t" match with "cat", "cut", etc. because the dot notation stand for ANY character). Swift implementation.
import UIKit
var words = ["Cat", "Cot", "Brazil", "Cut", "cat", "Apple", "Watch"]
var filter = [String]()
for word in words {
if let match = word.rangeOfString("(C|c)(.*)t", options: .RegularExpressionSearch) {
filter.append(word)
}
}
@hebertialmeida
hebertialmeida / gist:da65f587b44c6aeef76e
Created September 25, 2014 01:28
Given 2 arrays of integer (A and B) find the elements from A not belonging to B. Swift implementation.
import UIKit
let a = [1, 2, 3, 4, 5, 6, 7, 50, 30]
let b = [3, 10, 5, 6, 7, 8, 9, 51, 1]
var filter = [Int]()
for number in a {
if !contains(b, number) {
filter.append(number)
}
@hebertialmeida
hebertialmeida / gist:3a21d3517e5de9a051a7
Last active August 29, 2015 14:06
Function that merges two lists, but removing duplicate ones. Swift implementation.
import UIKit
var namesA = ["Luis", "Hector", "Selena", "Emmanuel", "Amish", "Rawle", "Selena"]
var namesB = ["Luis", "Selena", "Amish", "Rawle", "George", "Heberti"]
var filter = [String]()
for item in namesA+namesB {
if !contains(filter, item) {
filter.append(item)
}