흔히 UIView 의 애니메이션을 주고 싶은 경우가많을 것입니다.
iOS에서 몇가지를 지원해주지만 위에서 아래로 아래에서 위로 혹은 좌에서 우로 우에서 좌로의 애니메이션은 직접 만들어야 합니다.

그럼 간단한 예제 소스를 보이겠습니다.~!~!

[UIView beginAnimations:nil context:NULL];

[UIView setAnimationDuration:0.3];


CGRect r = self.testview.frame;

const double move = r.size.height;

//숨길때 쓰는 구간입니다.(1)

r.origin.y -= move;



//나올때 쓰는 구간입니다.(2)
r.
origin.y += move;

self.testview.frame = r;

[UIView commitAnimations];

여기서 testview는 움직이고자 하는 view입니다.

상황에 따라 틀리겠지만 현재 testview가 보이고 있는 상태에서 버튼 클릭시 안보이게 하기 위해서는 그냥 (1)번만
사용하면 됩니다.

그런데 testview가 안보이는 상태에서 (2)을 사용하여 보이게 하기 위해서는
처음에 view를 초기화 할때 testview의 좌표를 수정 해주어야 합니다.

예를 들자면 testview의 크기가 320*480이면
[self.testview setFrame:CGRectMake(0,-480,320,480)];
이렇게 좌표를 변경 해주어야지만 없는 상태에서 (2)을 사용하면

화면에 보이게 됩니다.
또한 위의 소스에서 빠진 부분이 addSubview 는 당연히 해주어야 합니다. ~! 이상입니다. ~!

h파일에 일단
UIActivityIndicatorView *aiv;


m파일에

//초기화를 해줌과 동시에 어떤 형태의 로딩 애니메이션을 할지 정해 줍니다.(색깔인가?)~!
aiv = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];

//좌표랑 크기를 지정 해줍니다.
aiv.frame = CGRectMake(0,0,40,40);

//지정한 뷰에 addSubview를 해줍니다.,원하는 뷰에 붙이시면 됩니다.
[testLogin.view addSubview:aiv];

//aiv 를 시작해줍니다.
[aiv startAnimating];

일단 파일로 첨부된 파일을 프로젝트에 추가 시킵니다. 이 파일은 인터넷에서 많이 돌아 다니는 게임센터를 따로 클래스 별로 
모아 놓은 형식입니다. 아주 잘 되어 있는데 필요 한 부분이 있으면 사용자가 추가 하면서 하면 될꺼 같습니다.

저는 cocos2d에서 Game Center의 구동을 위해서 view 방식을 바꾸어 놓은 상태 입니다.
아마 show~!~!~ 하는 함수들의 주석을 지우고 openGL의 view 방식을 주석 처리 하시면 일반 view에서 사용 하실수 있습니다.

그리고 제가 따로 추가 한 부분이

-(void)retrivePlayScore 이 부분이 유져의 점수를 가져 오는 부분 입니다.
            조금만 더 바꾸시면 유저의 아이디 랭킹도 가져 올수 있습니다. ^^

궁금한점이 있으시면 ~!~! 댓글 달아 주세요 ^^ 


Xcode4.0 미만일때와 xcode4.0이상일때는 방법이 조금 틀리다는것을 알수 있을것입니다. 
xcode4.0미만일때는 각 이미지나 각 InfoPlist.strings 의 Get Info 의 정보 들이 마우스 우 클릭으로
보여 지지만 Xcode4.0이상일때는 Get Info가 없는 상태 입니다.

 위 이미지에서 보듯이View 에서 오른쪽 세번째 버튼이 Get Info와 똑같습니다. !!
그런 후에 Localization 으로 각 지역을 추가 해주시면 InfoPlist.strings에 각 지역별로 생깁니다.

각 지역별로 생긴 후에 

CFBundleDisplayName  ="네모로직";

CFBundleDisplayName  ="NemoLogic";

각 지역별로 위와 같이 쓰면 끝납니다. ^^ 이상입니다. !! 궁금한점이 있으시면 댓글 달아 주세요 !!!!

 

 

NSString - > NSData

NSString *temp = [[NSString alloc] initWithData:tempData encoding:NSUTF8StringEncoding];

[temp release];



NSData - > NSString

NSData *temp = [tempNSString dataUsingEncoding:NSUTF8StringEncoding];


이상입니다..!!!!

위와 같은 오류 현상이 날때를 볼수가 있을 것이다.
그런데 Xcode 4.0이번 버젼과 이후 버젼에서 이 Warning를 수정 하는 방법이 틀리다.

이전 버젼

1) Info.plist 파일의 Get Info 창을 열고 targets 탭을 클릭해서 프로젝트이름 앞에 체크를 푼다.

2) Groups & Files 창에서 Targets 항목 아래의 프로젝트 명 아래에서 Copy Bundle Resources 아래에 Info.plist가 있는지 확인한다. (있다면 삭제)

검색 하면 이 방법은 많이 나와 있을 것이다.


이후 버젼

1)프로젝트 정보 창에서 TARGETS 에서 BuildPhases 에서 Copy Bundle Resources 아래에 있는
Info.plist 를 지운다.

-----------------------------------------------------------------------------------
Xcode4.0이후에 바뀐 부분이 너무 많다 ㅠㅠ 복잡하네요 ..~!


NSLog(@"%@",[[UIDevice currentDevice] model];

아이폰이면 iPhone 아이팟이면 iPod로 됩니다.

iOS3.2이상에서만 됩니다. 참고 하세요..!!

NSString* deviceInfo = [[UIDevice currentDevice] model];

if([deviceInfo isEqualToString:@"iPhone"])
              NSLog(@"이건 아이폰입니다. !!!!");
else
              NSLog(@"현재 아이폰이 아닙니다. !!!");


이렇게 하면 되겠네요 ^^
http://wramkim.tistory.com/2
출처 입니다. ^^


MBP를 구매한지 2주일이 다 되어가는 것 같습니다.
이제 어느정도 적응이 되었는데, 커맨드 + 스페이스를 통한 한/영 전환은 어렵더군요 -_-;;
더군다나 윈도우를 병행해서 쓰다보면 더욱 헷갈리게 됩니다.

해결책으로 많은 분들이 바람입력기를 사용하시는데 저같은 경우는 딜레이가 조금씩 생기기도 하고 가끔 오작동을 일으켜 불편한 점이 많았습니다.
그래서 키보드를 리매핑 하는 방법으로 해결하고 아직까지는 아무런 문제 없이 사용하고 있습니다 :)

잡담이 길었습니다. 아래는 설정 방법입니다.

바람입력기를 사용하고 있을 때

1. 시스템 환경설정 > 언어 & 텍스트입력 소스탭에서 바람입력기를 체크 해제하고 한글에 체크해주세요. (아래 그림 참고)




2. MAC 로그아웃 후 다시 로그인합니다.

3.
라이브러리/Input Methods에 있는 Baram.app을 삭제합니다.

오른쪽 커맨드키를 한영키로 사용하기

1. 아래의 첨부파일을 받아 압축을 풀고 설치합니다.

KeyRemap4MacBook-7.0.0.pkg.zip

다운로드 URL :  https://pqrs.org/macosx/keyremap4macbook/


2. 시스템 환경설정 > KeyRemap4MacBook('기타'분류에 있습니다)의 Misc & Uninstall탭으로 들어갑니다.

3. Custom Setting Open private.xml버튼을 클릭하면 새로운 폴더가 열립니다.




4. 폴더 안의 private.xml파일을 텍스트 편집기로 실행합니다.

5. 아래 내용을 복사해서 붙여넣은 뒤 저장합니다.

<?xml version="1.0"?>
<root>
    <item>
        <name>Command R to KOR/ENG</name>
        <list>
        <item>
          <name>Command_R to Command + Space (KOR/ENG Only)</name>
          <identifier>remap.commandR2_koreng_Only</identifier>
          <autogen>--KeyToKey-- KeyCode::COMMAND_R, KeyCode::SPACE, ModifierFlag::COMMAND_L</autogen>
        </item>
        <item>
          <name>Command_R to Command + Space (Command Available)</name>
          <identifier>remap.commandR2_koreng_command_available</identifier>
          <autogen>--KeyOverlaidModifier-- KeyCode::COMMAND_R, KeyCode::COMMAND_R, KeyCode::SPACE, ModifierFlag::COMMAND_L</autogen>
        </item>
        </list>
    </item>
</root>


6. KeyRemap4MacBook 설정창으로 돌아와 Change Key탭의 ReloadXML을 클릭합니다.




7. Command R to KOR/ENG 항목이 새로 생긴 것을 확인할 수 있습니다.



 Command_R to Command + Space (KOR/ENG Only) : 오른쪽 커맨드 키를 오직 한/영 전환용으로 사용합니다.
 Command_R to Command + Space (Command Available) : 한/영 전환과 동시에 기존의 커맨드 역할을 병행합니다.


8. 원하는 항목에 체크한 후 바로 사용하시면 됩니다.

여기까지 모든 설정이 끝났습니다.

뭐가 문젠지는 모르겠지만 중간에 글자 색이 바뀌었네요 -_-;;;
소스를 봐도 문제가 없고 에디터에서도 별 문제가 없는데...

아무튼 많은 도움이 되면 좋겠습니다.
감사합니다 :)



char* -> NSString

char szText[] = "hi...";
NSString* nsStr = [NSString stringWithUTF8String: szText];

char strDocumentDirectory[1024];
[pDocumentsDirectory getCString:strDocumentDirectory maxLength:sizeof(strDocumentDirectory)-1 encoding:NSASCIIStringEncoding];

NSString -> char*

NSString* nsStr = @"hi I'm NSString";
const char* strTmp = [nsStr UTF8String];



---------------------------------------------------------------
출처]http://manwooo.egloos.com/834519

iPhone: Determining Available Memory

The iPhone has limited memory, and even simple applications can easily trigger a low memory warning. If you've implemented caching for performance reasons, you'll often find yourself balancing memory consumption against user experience.

Measuring the current available RAM allows one to make pre-emptive decisions about memory utilization before a low memory warning is triggered, possibly avoiding overly broad cache evictions when a memory warning is triggered.

I've seen this question come up a number of times, so here's a brief code snippet demonstrating how to determine available memory from the Mach VM statistics.

#import <mach/mach.h>
#import <mach/mach_host.h>
 
static void print_free_memory () {
    mach_port_t host_port;
    mach_msg_type_number_t host_size;
    vm_size_t pagesize;
    
    host_port = mach_host_self();
    host_size = sizeof(vm_statistics_data_t) / sizeof(integer_t);
    host_page_size(host_port, &pagesize);        
 
    vm_statistics_data_t vm_stat;
              
    if (host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size) != KERN_SUCCESS)
        NSLog(@"Failed to fetch vm statistics");
 
    /* Stats in bytes */ 
    natural_t mem_used = (vm_stat.active_count +
                          vm_stat.inactive_count +
                          vm_stat.wire_count) * pagesize;
    natural_t mem_free = vm_stat.free_count * pagesize;
    natural_t mem_total = mem_used + mem_free;
    NSLog(@"used: %u free: %u total: %u", mem_used, mem_free, mem_total);
}
 
 
출처
http://landonf.bikemonkey.org/code/iphone/Determining_Available_Memory.20081203.html

+ Recent posts