2012년 7월 28일 토요일

iOS 프로그래밍 팁 - 5 UITextView 라운드 처리

알바를 하는데 TextFiled 도 써야 하고 멀티 라인을 입력 받는  UITextView도 써야 한다.

근데 디자인 가이드에 멀티라인을 입력받는 부분도 모두 둥글게 라운드 처리 되어야 한다고 한다.

UITextView는 그냥 사각인데
TextFiled는 borderStyle = UITextBorderStyleRoundedRect;
로 처리 하면 둥글 둥글해지는데.
UITextView는 저 속성이 없다.


해결방법은 있다.


#import <QuartzCore/QuartzCore.h>

    txtContent.layer.cornerRadius = 5;
    txtContent.clipsToBounds = YES;

이렇게 하면 UITextFiled의 UITextBorderStyleRoundedRect랑 비슷하게
어울린다.

참고글..
http://stackoverflow.com/questions/1824463/how-to-style-uitextview-to-like-rounded-rect-text-field


2012년 7월 26일 목요일

iOS 프로그래밍 팁 - 4탄 ViewController 회전막기

앱을 만들다 보면 회전이 되어서는 안되는 앱도 필요하다.

자동으로 회전 되는 코드가 ViewController에 디폴트로 설정 되어 있다.

이를 주석 처리 해주면 된다.


//- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
//{
//    // Return YES for supported orientations
//    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
//        return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
//    } else {
//        return YES;
//    }
//}

수직 방향만 회전이 되게 하고 싶다면
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

해주면 된다.



2012년 7월 25일 수요일

iOS 프로그래밍 팁 - 3 StatusBar 감추기


게임을 만들때 반드시 처리해야 할일 상태바를 감춰야 한다.

게임에서는 상태바에 시간 베터리 양이 보이면 상대적으로 몰입도가 떨어진다.

아무리 보드게임이라 할지라도 반드시 없애 줘야 사용자가 좀더 게임에 몰입한다.

이게 근데 어떻게 설정 해서 하는건지 모르면 난감하다.


AppDelegate 소스에

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Hide the status bar
    [UIApplicationsharedApplication].statusBarHidden = YES;

위와 같은 간단한 코드로 해결이 된다.

오늘의 팁은 끝!

2012년 7월 24일 화요일

xcode 4 code snippet 사용하기

XCode에서 자주쓰는 코드를 빠르게 찾아서 코딩 하는 방법을 제공한다.
회사 동료덕에 알게된 기능인데
이걸 잘 활용하면 프로그래밍 속도가 붙을거 같다.

사용방법은
control + option + command + 2

View --> Utilities --> Show Code Snippet Library
를 선택하면 오른쪽 하단에  Xcode가 디폴트로 제공하는 것들이 보인다.

내 코드를 추가 하고 싶다면 Xcode  에디터에서 코드를 선택한다음 드레그 하여
그위치에 넣으면 간단한 대화 상자를 입력 하면 끝이다.

이렇게 만든 코드는 짧은 키워드로 빠르게 이용할수 있고
찾아서 드레그 해서 놓아도 된다.

두대 이상의 컴퓨터의 Xcode에서 공유하고 싶다면?

~/Library/Developer/Xcode/UserData/CodeSnippets/


이 경로를 ucloud나 Daum클라우드 같은 소프트웨어로 공유하면 끝이다.


iOS 프로그래밍팁 - 2탄 이미지 회전

이 팁은 그냥장기판 에서 장기알을 뒤집기 위해 이용했다.

한 초 에서 한에 이미지도 사실 보는 한자를 읽는 방향으로 이미지가 이루어져 있다.
처음에는 이를 모두 그래픽툴로 뒤집어서 사용했다.

하지만 이미지 리소스를 원본 그대로 하고 코드로 180도 회전시킬수 있다면
그러한 수고는 필요 없다.

역시 알지 못하면 손발이 고생한다.

그냥장기판 앱에서는 한의 장기 알이 180도 회전 되어야 하고
그래야 사람대 사람이 둘때 공평하게 가독성(?) 이 있다고 생각 했다.
또한 한쪽 진영에 잇는 모든 탭바및  탭바 컨트롤 버튼등도 모두 180도 회전
되어 있어야 공평하다.

 toolbar2.transform = CGAffineTransformMakeRotation(3.141592);

툴바의 회전이다.


메세지 박스로 이용하는 UIAlertView의 회전은 transform = CGAffineTransformMakeRotaion()을 이용해도 되지 않는다.


이는 살짝 꼼수가 필요하다. 

아래와 같이 단말기에 상태를 바꿔 줘야 UIAlertView를 회전 시킬수 있다.
[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationPortrait;

[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationPortraitUpsideDown;

이로서 그냥 장기판 앱은 위에서 보나 아래서 보나 같은 UI와 같은 AlertView를 구현 하였다.


2012년 7월 23일 월요일

iOS 프로그래밍팁 - 1탄 앱 삭제 할때처럼 좌우로 흔들 흔들 효과

이번 팁은 닥치고덧셈
에서 힌트를 누르면 정답 숫자 들이 흔들 흔들
마치 앱을 삭제 할때 롱터치 하고 나면 아이콘이 흔들 흔들 거리는 효과이다.


        
        CGAffineTransform leftWobble = CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(-5.0));
        CGAffineTransform rightWobble = CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(5.0));
        
        btn.transform = leftWobble;  
        
        [UIView beginAnimations:@"wobble" context:btn];
        [UIView setAnimationRepeatAutoreverses:YES]; 
        [UIView setAnimationRepeatCount:10];
        [UIView setAnimationDuration:0.2];
        [UIView setAnimationDelegate:self];
        [UIView setAnimationDidStopSelector:@selector(wobbleEnded:finished:context:)];
        
        btn.transform = rightWobble; 
        
        [UIView commitAnimations];



- (void) wobbleEnded:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context 
{
    if ([finished boolValue]) {
        UIView* item = (UIView *)context;
        item.transform = CGAffineTransformIdentity;
    }
}


btn (UIButton) 객체를 leftWooble, rightWooble로 transform 하면서 흔들 흔들 
10회 하도록 하는 에니메이션이다.



2012년 7월 4일 수요일

초간단 osx svn 서버

요즘은 git가 대세 라고 한다는데..

Xcode에서도 git어쩌구 해서 한번 익혀 보려고 했는데. 아직도 못하는 옛날 개발자이다.
iOS앱을 배포 하고 나름 버젼업도 하고 하면서
svn서버를 로컬에다 만들고
svnroot를 클라우드 서비스에 공유 폴더로 하고
해서 사용하고 있었다.
머 혼자 사용하는데는 문제 없고 잘사용하고 있었다.

svn co file:///Users/sparrow/svnroot~~
머 이렇게 사용하는것도 불편함이 없었고
Xcode도 잘 되서 그냥 사용했다.

여기까지는 osx lion에 이미 다 세팅되어 있는 svn을

svn root 디렉토리 만들고
# mkdir svnroot

# svnadmin create /Users/sparrow/svnroot


이렇게 하면 머 그냥 끝이다.


로컬에서 xcode로 작업하는데 전혀 문제가 없다.

다른 장비에서 리모트 엑세스를 하려면.


다음과 같이 하면 된다.

환경설정 --> 공유 --> 원격 로그인 체크

다른장비에서

svn co svn+ssh://sparrow@192.168.11.8/Users/sparrow/svnroot/~~~

이렇게 access할수 있다.