SNS 프로필 사진에서 쓰이는 방식과 같이 원형 프레임 안에 사진을 넣고 비율을 맞추는 코드.


import UIKit


let myView = UIImageView(frame: CGRect(x: 0, y: 0, width: 100, height: 100)) //이미지뷰 만들기

myView.layer.cornerRadius = myView.frame.width / 2 //프레임을 원으로 만들기

let myImage = UIImage(named: "bruceLee.gif") //이미지 객체 생성

myView.image = myImage //이미지를 이미지뷰에 넣기

myView.contentMode = UIViewContentMode.ScaleAspectFill //이미지 비율 바로잡기

myView.clipsToBounds = true //이미지를 뷰 프레임에 맞게 clip하기


WRITTEN BY
artfrige
베이스 연주는 건강에 좋습니다
트랙백  0 , 댓글  0개가 달렸습니다.
secret

Segue를 이용해서 다른 ViewController에 데이터 전달하는 코드


override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

if (segue.identifier == "targetSegue"){

let targetView : targetViewController = segue.destinationViewController as! targetViewController

targetView.targetVariable = thisViewControllerVariable

}


}


이쪽 뷰 컨트롤러의 thisViewControllerVariable 변수 값을 targetViewController의 targetVariable이라는 변수에 전달한다.

targetViewController에서는 targetVariable 이라는 변수를 선언하면 값은 자동으로 전달됨.


WRITTEN BY
artfrige
베이스 연주는 건강에 좋습니다
트랙백  0 , 댓글  0개가 달렸습니다.
secret

아이폰 텍스트필드를 탭했을 때 나오는 키보드에 액세서리 뷰를 달아서 기타 콘트롤러를 붙일 수 있다.


import UIKit


class TextFieldWithAccessory: UITextField {


func makeAccessoryView(){

let numberToolBar : UIToolbar = UIToolbar(frame: CGRectMake(0, 0, self.frame.width, 40))

numberToolBar.barStyle = UIBarStyle.BlackTranslucent

let keyboardToolBarEmptySpace : UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)

let keyboardToolBarDoneButton :UIBarButtonItem = UIBarButtonItem(title: "완료", style: UIBarButtonItemStyle.Done, target: self, action: "resignFirstResponder")

keyboardToolBarDoneButton.tintColor = UIColor.whiteColor()

numberToolBar.items = [keyboardToolBarEmptySpace,keyboardToolBarDoneButton]

numberToolBar.sizeToFit()

self.inputAccessoryView = numberToolBar

}

}


UIToolbar 인스턴스를 생성하고 프레임을 그린다음 왼쪽에 빈 공간을 채우고, 오른쪽 끝에 완료 버튼을 구성하는 코드이다.



WRITTEN BY
artfrige
베이스 연주는 건강에 좋습니다
트랙백  0 , 댓글  0개가 달렸습니다.
secret

swift로 프로그래밍 하면서 UILabel이나 UIText 등의 폰트 이름을 바꿀 때 폰트 패밀리 이름을 몰라서 헤맬 때가 있는데 아래 함수를 한번 돌려주면 콘솔에 폰트 패밀리 이름을 쭉 뿌려줘서 편함.


func printFonts() {

let fontFamilyNames = UIFont.familyNames()

for familyName in fontFamilyNames {

print("------------------------------")

print("Font Family Name = [\(familyName)]")

let names = UIFont.fontNamesForFamilyName(familyName )

print("Font Names = [\(names)]")

}

}


WRITTEN BY
artfrige
베이스 연주는 건강에 좋습니다
트랙백  0 , 댓글  0개가 달렸습니다.
secret



지난주에 여행을 다녀왔는데 겸사겸사 기내면세품으로 팔고 있는 A8을 14만원 정도에 지를 기회가 있어서 사왔음. A8이야 B&O 제품 치고 엄청 흔해 빠져서 이젠 많이들 쓰는 이어폰이지만 내 경우에는 음악감상용이 아니고 연주 모니터용으로 사용하기에 그에 대한 사용감을 짧게 적어보겠음.


본론으로 들어가기 전에 내가 A8을 사용하는 환경은 2012 펜더 아메리칸 스탠다드 재즈베이스에 아포지 잼 96K를 물려서 아이폰용 앰플리튜브 암펙 시뮬레이터로 뽑고 A8을 연결해 사용중임. 사진으로 보면 아래와 같음.




우선 내 주변에서는 A8을 감상용으로 쓰거나 써봤다는 사람들을 열 명쯤 찾아 볼 수 있었는데, 대부분 소리가 너무 플랫하고 특정 대역이 부스팅되지 않아서 두루두루 쓰기 껄끄럽다는 평을 하고 있었음. 그래서 맘에 안든다고 팔아먹은 경우도 다반사. 실제로 사용해 본 나의 느낌도 EQ를 걸지 않고 감상용으로 사용했을 때 소리가 플랫하고 뭔가 매가리가 없는 느낌이 있었기에 20만원씩이나 주고 감상용으로 이걸 사서 써야하나라는 생각이 들만 했음. 한마디로 감상할때 쓰기엔 내생각에도 가성비가 구림.


하지만 베이스를 연주하면서 물려 써보니 모니터용으론 상당히 괜찮은 축에 속하는 듯 함. 첫째로 가장 편했던 점은 녹음할 때 베이스가 들리지 않아서 베이스 트랙의 볼륨을 무작정 키우지 않아도 됐음. 기존에 쓰던 다른 헤드폰은 하이나 로우가 듣기좋게 프리셋된 상태라 베이스 연주를 모니터링 할 때에는 베이스 트랙이 너무 크게 들리거나 혹은 작게 들렸음. 그래서 녹음 다 해놓고 다른 스피커나 이어폰으로 들으면 느낌이 또 달라서 당최 적당한 볼륨 맞추기가 힘들었는데 A8의 경우는 오히려 특정 대역이 강조되지 않아서 적당히 잘 들리도록 볼륨 맞춰놓고 녹음하면 다른 헤드폰으로 들었을 때도 다른 악기 소리나 MR트랙과 잘 섞여서 무난무난하게 잘 들리는 장점이 있음.


두번째는 귀가 시원했음. 요새같은 날씨에도 헤드폰 뒤집어 쓰고 한 30분 치고 놀면 귀때기에서 땀이 엄청 나고 그게 또 헤드폰 가죽부분이랑 닿으면 느낌이 이루 말할 수 없이 거지같았음. 그렇다고 오픈형 이어폰을 끼면 연주하다가 자꾸 귀에서 빠지고 내 귀는 커널형도 밀어내는 이상한 귀라 아무튼 자꾸 이어폰이 빠져서 짜증났는데 A8은 귀걸이가 있어서 그런거 없고 좋았음.


좋은 점은 이정도고 나쁜 점도 몇개 있었는데 첫째로 풀볼륨에서 로우 E를 썸슬랩으로 때리면 진동판 째지는 소리같은게 들림. 찌지직 거리는 소리가 들리는데 꽤 기분이 나빠서 볼륨을 크게 할 수 없었음. 게인량을 줄여도 볼륨이 만땅이면 이 소리는 변함없이 나는걸 보니 게인의 문제는 아닌거같음. 암펙 앰프 기능인 Ultra Hi 랑 Low도 무관하게 볼륨이 만땅이라면 어쨋든 째지는 소리가 들림. 둘째는 줄이 짧음. 그래서 이어폰 연장선을 반드시 구매해야됨. 큰돈은 아니지만 몇천원 더 지출해야 되는게 약간 마이너스. 물론 감상용으로만 쓸거면 그런거 없어도 되지만 난 그런 용도는 아니니까 이것도 단점이라고 적을 수 있음.


여튼 돈값은 하고 총알이 넉넉하다면 하나 질러서 더운 여름에 헤드폰 대신 뒤집어 쓰고 악기 연주할 수 있어서 좋은 이어폰임. 감상용으론 호불호가 갈리지만 연주용으론 추천하고 싶음.


WRITTEN BY
artfrige
베이스 연주는 건강에 좋습니다
트랙백  0 , 댓글  0개가 달렸습니다.
secret

step 1

우선 storyboard 에서 UIImageView 객체를 하나 집어넣고 적당힌 이미지를 입힌 다음 객체 속성에서 User Interaction Enabled를 체크해 준다.

그 다음 UIImageView 객체를 헤더 파일로 우클릭-드래그 해서 property로 선언하고 pinchGestureImage 로 이름짓는다.

이것으로 스토리보드에서 할일은 끝.


step 2

다음은 헤더에서 프로퍼티와 터치 입력이 발생했을 때 사용할 메서드를 선언해준다.


ViewController.h

--


#import <UIKit/UIKit.h>


@interface ViewController : UIViewController

@property (strong, nonatomic) IBOutlet UIImageView *pinchGestureImage; //터치 제스쳐가 일어날 UIImageView

@property UIAlertView *myAlert; //액션이 일어났을 보여줄 팝업창


-(void)pinchEnabled:(UIPinchGestureRecognizer *)recognizer; //이미지를 핀치했을때 동작할 메서드


@end


--


step 3

다음은 구현부에서 메서드를 정의해준다.

(XCode에서 자동으로 생성하는 부분-[super viewDidLoad] 등-은 제외함)


ViewController.m

--


//property 들을 synthesize 해준다.

@synthesize pinchGestureImage;

@synthesize myAlert;


-(void)pinchEnabled:(UIPinchGestureRecognizer *)recognizer

{

if (recognizer.state == UIGestureRecognizerStateBegan) //UIPinchGestureRecognizer 객체의 상태가 '시작'상태일

{

myAlert = [[UIAlertView alloc]initWithTitle:nil message:@"Hello!" delegate:nil cancelButtonTitle:@"close" otherButtonTitles:nil, nil]; //팝업창의 속성을 이와 같이 정의하고

[myAlert show]; //팝업을 띄운다

}

}


- (void)viewDidLoad {

UIPinchGestureRecognizer *myPinchGesture = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinchEnabled:)]; //myPinchGesture 라는 터치 제스쳐를 하나 만들고 init하면서 target self, 제스쳐를 입력받아 동작한다면 pinchEnabled: 메서드를 따르도록 한다.

[pinchGestureImage addGestureRecognizer:myPinchGesture]; //myPinchGesture pinchGestureImage 심는다.

}


@end


--


이제 시뮬레이터에서 앱을 빌드하면 아래와 같은 화면이 보인다.



그리고 이미지를 pinch 하면 팝업이 동작한다.



UIPinchGestureRecognizer 를 UILongTabRecognizer 등으로 교체하여 롱탭, 탭 등의 다른 제스쳐로도 응용 가능함.


WRITTEN BY
artfrige
베이스 연주는 건강에 좋습니다
트랙백  0 , 댓글  0개가 달렸습니다.
secret

UIGestureRecognizer 등의 방법을 쓸 수도 있으나

일단 ViewController에 아래 메소드를 입력하면 됨.


-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

for (UIView * youtxtfl in self.view.subviews){

if ([youtxtfl isKindOfClass:[UITextField class]] && [youtxtfl isFirstResponder]) {

[youtxtfl resignFirstResponder];

}

}

}




WRITTEN BY
artfrige
베이스 연주는 건강에 좋습니다
트랙백  0 , 댓글  0개가 달렸습니다.
secret


Apple | iPhone 5s | F/2.2



긴말은 안해도 되겠지.

펜더병이 이렇게 치료됐다.

색상은 jade pearl metallic / maple...


WRITTEN BY
artfrige
베이스 연주는 건강에 좋습니다
트랙백  0 , 댓글  0개가 달렸습니다.
secret

연말 송년회에 밴드 공연을 했는데 확실히 출력이나 사운드 모두 공개적으로 쓰기엔 약간 아쉬웠기에 6개월여간 잘 쓰고 있던 스콰이어 빈티지 70재즈의 픽업을 갈아주기로 결정.

물론 내가 무슨 전문 연주자나 돼서 하는 소린 아니고 그냥 그런 느낌이 들었다는 주관적인 생각. 

아무튼 돈지랄은 내 자유니 일단 물건을 주문.


픽업은 펜더의 N3 노이즈리스 재즈베이스 픽업이고 아마존에서 구입한지 약 일주일 만에 물건 도착.


Apple | iPhone 5s | F/2.2


아마존에서 지르고 몰테일 통해서 배송 시켰는데 꽤 깔끔하게 포장돼서 왔음.

넥, 브릿지 픽업 두개 다 합해서 물건값 105불 정도에 배송료 17불 정도. 

한화로 환산하면 약 13만원 정도니 국내에서 구입하는것보다 몇만원 싸게 산듯.


그리고 번개같이 퇴근하자마자 폭풍 해체에 돌입.


Apple | iPhone 5s | F/2.2


이 수술은 내가 집도한다...는 훼이크고 까보니 배선이 영 이상하게 돼 있음.

이건 어느동네 근본없는 배선인지? 가성비의 스콰이어라 그럼?


Apple | iPhone 5s | F/2.2


어쨋든 일단 이식할 픽업을 준비하고.. 수술 개시.


Apple | iPhone 5s | F/2.2


근본없는 배선의 모습.

뒤집어 까보니 픽업에서 나온 것 빼고도 접지만 3개였다. 픽업 접지선까지 합쳐서 접지만 다섯개. 

일반적으론 브릿지에서 한개 아니면 바디에서 하나 더 해서 픽업 접지선까지 많아야 4개라고 알고 있었는데 이꼴을 보고 있자니 정신이 대략 멍해짐.

그리고 더 황당한건 이 다섯가닥이 리어픽업 볼륨팟에 전부 납땜돼있음.. 엄마 이거 뭐야...


그리고 또 한가지, 노이즈리스 픽업을 지른 이유가 스콰이어 서비스 매뉴얼에서 보니 빈티지 70재즈의 볼륨팟 저항이 500K옴으로 표시돼서였는데 뜯어보니 250K옴임. 

언제 귀신같이 스펙이 변경된건지? 이럴줄 알았으면 그냥 스탠다드 픽업 살걸.. 이삼만원 더 싼데! 시불...


Apple | iPhone 5s | F/2.2


게다가 뭔 이유인지 볼륨팟에 접지된 납땜이 내가 가진 인두론 쉽사리 녹질 않음.

한참을 어르고 달래서 간신히 픽업 분리에 성공... 저놈의 납 녹이는데만 한시간이 넘게 들었음.

잘 보면 오른쪽에 모친 출타하신 접지선 세가닥(앞픽업 바닥, 뒷픽업 바닥, 브릿지)이 보임.


Apple | iPhone 5s | F/2.2


콘트롤러 어셈블리 클로즈업 샷. 

사진엔 잘 안보이지만 팟 뒤에 ALPHA 250K옴 저항이라고 써있음.

버즈비에서 한개에 3000원짜린데.. 역시 싸구려티가 풀풀남.

마음같아선 죄다 CTS 팟으로 갈아치우고 아예 배선까지 처음부터 다시 하고 싶었는데 싸구려 베이스에 돈 퍼붓기 싫어서 참음. 

좀더 치다가 그냥 펜더를 사고말겠음.


Apple | iPhone 5s | F/2.2


이식할 펜더픽업을 앉힌 후에 순식간에 납땜해버림.

배선을 다 뜯은 후에 스탠다드 재즈베이스처럼 바꿀까 잠시 고민하다가 커패시터가 톤팟 2번발에 땜돼있는 바람에 그냥 냅두고 원래 배선대로 가기로 결정.

커패시터 한쪽 다리가 짧아서 땜 떼고 났는데 3번발에 안 닿으면 일이 귀찮아짐. 

접지선들은 잘 안녹았던 납땜 때문에 그냥 그 위에 덕지덕지 쳐발라버렸음. 깨끗해보이진 않지만 딱히 기능상에 지장은 없으니 패스.

사진상에 보이는 흰색 선이 넥픽업 핫, 브릿지픽업 2번발에 땜된 빨강선이 브릿지픽업 핫, 녹색과 청록색 라인이 픽업 접지선임.


Apple | iPhone 5s | F/2.2


그리고 뜯은 김에 6개월만에 줄도 교체. 

기존 줄은 뻣뻣해져서 이제 못 쓰겠었는데 이번 기회에 갈아버렸음.

가끔 보면 베이스줄을 빨거나 삶는 사람들이 있는데 난 그냥 새거 사서 쓸래..

교체한 줄은 베이스 샀을때 공짜로 딸려왔던 덱스터 줄임.


Apple | iPhone 5s | F/2.2


시작한지 두시간만에 줄 감고 튜닝까지 끝냄.

브릿지 만져가며 하모닉스 튜닝까지 하느라 튜닝하는데만 30분은 잡아먹은듯.

확실히 줄이 새거라 보들보들 연주감이 좋아짐.


교체 후 이전에 녹음했던 것과 똑같은 세팅으로 다시 연주해서 녹음해 봤는데

소리가 조금 달라진게 느껴는 짐. 근데 뭔가 우왕! 하는 정도는 아닌듯.

하지만 헤드폰 끼고 들었을때 저음역(주로 E스트링)이 괴상하게 울리던 느낌은 확실히 사라졌음.

소리가 좀 고급진 느낌이 됐다고 하면 설명이 될 듯.


그리고 픽업 달기 전에 어떤 양놈이 쓴 후기를 읽었을때, 250K 볼륨팟에 노이즈리스를 달면 조금 소리가 dull 해진다고 해서 조금 걱정했는데 내귀가 막귀라 그런지 아니면 원래보다 소리가 멀쩡해져서 그런지 잘 모르겠음.


아무튼 더이상 이 베이스에 돈쳐바르는 일은 없어야겠지.

다음번에 악기에 돈쓸일이 생긴다면 펜더 베이스를 사는 날일것임.


Apple | iPhone 5s | F/2.2


그런데 달려있던 스콰이어 픽업은 어떻게 처리하나.

이거 영 처치 곤란임..


WRITTEN BY
artfrige
베이스 연주는 건강에 좋습니다
트랙백  0 , 댓글  0개가 달렸습니다.
secret

OS X 10.10 Yosemite Server에서는 2002 MySQL 소켓 에러가 발생한다.

이 소켓 에러의 증상은 쉘에서는 MySQL에 정상 접근 되고 동작도 멀쩡히 하지만 phpMyAdmin을 통해서 DB에 접속을 시도하거나 워드프레스를 설치하면서 DB정보를 입력하면 DB에 접근이 불가능하다는 에러를 뿜는다.


해결하는 방법은 간단한데, 쉘(터미널)에서 아래의 두 명령어를 순서대로 입력하면 된다.


$> sudo mkdir /var/mysql

$> sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock


오늘 이걸 몰라서 하루종일 MySQL 붙들고 씨름을 했더니 진이 빠짐.


WRITTEN BY
artfrige
베이스 연주는 건강에 좋습니다
트랙백  0 , 댓글  0개가 달렸습니다.
secret