'iPhone'에 해당되는 글 26건

  1. 2011.11.01 UIWebView 관련.
  2. 2011.11.01 UILabel 관련 내용.
  3. 2011.10.28 Table View 관련
  4. 2011.10.28 NSDate를 이용하여 D-Day 계산.
  5. 2011.10.24 iOS 텍스트 관련.
  6. 2011.10.24 인터페이스 빌더에서 오브젝트의 경계선 보이게 하기
  7. 2011.10.22 graph 관련 라이브러리
  8. 2011.10.22 tapku 달력 라이브러리 튜토리얼.
  9. 2011.10.21 xcode Update 후 빌드가 오류.
  10. 2011.10.20 NSDate NSDateComponents

UIWebView 관련.

Dev/iOS 2011. 11. 1. 17:56


HTML 문자열로 표시할때 gif 이미지 표시하는 방법.
NSString *html = [NSString stringWithFormat:@"<img src='https://t1.daumcdn.net/cfile/tistory/2220894C56E7540A35", [myData base64Value];
[myWebView loadHTMLString:html baseURL:nil]
* 테스트 안됐음.


HTML 문자열로 표시할때 이미지를 파일로 저장한 후 해당 경로를 이용하여 표시하는 방법.

- (NSString *)writeToFile:(UIImage *)image
{
    // Get the location of the Documents directory
    NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
 
   NSString * imagePath = [paths objectAtIndex:0];
    NSString * filename = @"tempDiaryPicture.png";
 
   NSString * filepath = [NSString stringWithFormat:@"%@/%@", imagePath, filename];
    
    // Save the image
    NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(image)];
 
   [imageData writeToFile:filepath atomically:YES];
    
    return filepath;
}
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    Model * model = _getModel();
    NSString * html = [NSString stringWithFormat:
 
                      @"<center><img src=\"file://%@\" width=\"240\" height=\"240\" border=\"0\"></center>\n"
                       "<hr />",
                       [self writeToFile:image]];    // UIImage * image -> 데이터베이스나 라이브러리와 같은 곳에서 읽어온경우.
    [webView loadHTMLString:html
 
                    baseURL:nil];
    
 }
 

Base64 encoding options on the Mac and iPhone



stackoverflow : http://stackoverflow.com/questions/1527351/how-to-add-an-uiimage-in-mailcomposer-sheet-of-mfmailcomposeviewcontroller-in-ip
NSData+base64 by matt gallagher : http://cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html 



간략하게 설명하면 다음과 같다.
1. matt gallagher 의 홈페이지에 가서 NSData_Base64.zip 파일을 다운로드 받아 프로젝트 폴더에 압축을 해제.
2. NSData+Base64.h, NSData+Base64.m 파일을 프로젝트에 추가한다.
3. 사용하고자 하는 파일에 .h 파일을 #import 한다.
4. 다음과 같이 UIImage파일을 NSData로 변환을 거쳐 NSString으로 변환하여 이미지를 표시한다.
 UIImage *emailImage = [UIImage imageNamed:@"myImageName.png"];
 
//Convert the image into data
   
NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(emailImage)];
 
//Create a base64 string representation of the data using NSData+Base64
   
NSString *base64String = [imageData base64EncodedString];
 
//Add the encoded string to the emailBody string
 
//Don't forget the "<b>" tags are required, the "<p>" tags are optional
   
[emailBody appendString:[NSString stringWithFormat:@"<p><b><img src='https://t1.daumcdn.net/cfile/tistory/233F704F56E7540A34",base64String]];




'Dev > iOS' 카테고리의 다른 글

gdb stack trace at 'putpkt: write failed' 해결방법  (0) 2011.11.11
NSLog 함수 이름 관련 매크로.  (0) 2011.11.04
UILabel 관련 내용.  (0) 2011.11.01
UITextView  (0) 2011.11.01
Table View 관련  (0) 2011.10.28
:

UILabel 관련 내용.

Dev/iOS 2011. 11. 1. 11:52



UILabel에 여러개의 라인 사용하기

Multiple lines of text in UILabel


핵심 내용은
textLabel.lineBreakMode = UILineBreakModeWordWrap;
textLabel.numberOfLines = 0;

Interface builder를 이용할 경우
number of lines를 0으로 설정하고 텍스트에 엔터키 입력시 (Alt+Enter)를 이용한다.




'Dev > iOS' 카테고리의 다른 글

NSLog 함수 이름 관련 매크로.  (0) 2011.11.04
UIWebView 관련.  (0) 2011.11.01
UITextView  (0) 2011.11.01
Table View 관련  (0) 2011.10.28
HTML5로 아이폰앱 만들기  (0) 2011.10.28
:

Table View 관련

Dev/iOS 2011. 10. 28. 18:21



테이블 배경에 패턴 형식으로 이미지 넣기.

NSString *backgroundPath = [[NSBundle mainBundle] pathForResource:@"background" ofType:@"jpg"];
UIImage *backgroundImage = [UIImage imageWithContentsOfFile:backgroundPath];
UIColor *backgroundColor = [[UIColor alloc] initWithPatternImage:backgroundImage];
self.tableView.backgroundColor = backgroundColor;
[backgroundColor release];


뷰 컨트롤러의 뷰 배경에 이미지 넣고 테이블 배경 투명하게 하기.


anniversaryTableView = [[AddAnniversaryTableViewController alloc]

initWithStyle:UITableViewStylePlain];

//테이블 뷰의 배경색을 투명으로 지정합니다.

anniversaryTableView.view.backgroundColor = [UIColor clearColor];

anniversaryTableView.view.opaque = YES;

anniversaryTableView.delegate = self;

anniversaryTableView.tableView.allowsSelectionDuringEditing = YES;

//뷰 컨트롤러의 뷰에 배경 이미지를 지정합니다.

self.view.backgroundColor =

[UIColor colorWithPatternImage:

[UIImageimageNamed:@"anniversary_background.png"]];

anniversaryTableView.view.frame = CGRectMake(9010230450);


//그리고 뷰 컨트롤러의 뷰 위에 테이블 뷰 컨트롤러의 뷰를 붙입니다.

[self.view addSubview:anniversaryTableView.view];






 

'Dev > iOS' 카테고리의 다른 글

UILabel 관련 내용.  (0) 2011.11.01
UITextView  (0) 2011.11.01
HTML5로 아이폰앱 만들기  (0) 2011.10.28
NSDate를 이용하여 D-Day 계산.  (0) 2011.10.28
iOS 텍스트 관련.  (0) 2011.10.24
:

NSDate를 이용하여 D-Day 계산.

Dev/iOS 2011. 10. 28. 01:35


NSDate * date = [NSDate dateWithNaturalLanguageString:@"0000-00-00"];
NSDate * dDay = [NSDate dateWithNaturalLanguageString:@"0000-00-00"];

NSDateComponents * com = [[NSCalendar currentCalendar] components:NSDayCalendarUnit
                                                                                           fromDate:date 
                                                                                                toDay:dDay
                                                                                              options:0]; 
NSLog(@"day = %d", [com day]);
 

출처 : http://blog.daum.net/dmz7881/8873170

 

'Dev > iOS' 카테고리의 다른 글

Table View 관련  (0) 2011.10.28
HTML5로 아이폰앱 만들기  (0) 2011.10.28
iOS 텍스트 관련.  (0) 2011.10.24
인터페이스 빌더에서 오브젝트의 경계선 보이게 하기  (0) 2011.10.24
graph 관련 라이브러리  (0) 2011.10.22
:

iOS 텍스트 관련.

Dev/iOS 2011. 10. 24. 23:13


Quartz 2D 텍스트 : 정보 영재 카페

iOS에 폰트 추가하기
출처 : Jeonglim So
h



 
:

인터페이스 빌더에서 오브젝트의 경계선 보이게 하기

Dev/iOS 2011. 10. 24. 13:00


인터페이스 빌더를 이용해 UI를 구성하는데 각 컨트롤? 오브젝트? 들의 위치가 잘 안보여서 불편하다.
메뉴 중에 찾아보니, 다음 메뉴를 활성화 하면 경계선이 보인다.

Editor -> Canvas -> Show Bounds Rectangles

 

'Dev > iOS' 카테고리의 다른 글

NSDate를 이용하여 D-Day 계산.  (0) 2011.10.28
iOS 텍스트 관련.  (0) 2011.10.24
graph 관련 라이브러리  (0) 2011.10.22
tapku 달력 라이브러리 튜토리얼.  (0) 2011.10.22
xcode Update 후 빌드가 오류.  (0) 2011.10.21
:

graph 관련 라이브러리

Dev/iOS 2011. 10. 22. 03:07


:

tapku 달력 라이브러리 튜토리얼.

Dev/iOS 2011. 10. 22. 02:58


:

xcode Update 후 빌드가 오류.

Dev/iOS 2011. 10. 21. 00:46


xcode 를 iOS5 에 맞추어 4.2로 올렸다.
그런데 잘 컴파일 더된 소스에서 에러가 발생.

Apple Mach-O Linker Error
 

와 함께 경고들이 5개 정도 나타났다.
구글에 검색해본 결과 다양한 원인이 있는걸로 보인다.
타겟 디바이스 설정이니, 컴퍼일러 설정, 프로젝트 클린 후 재빌드 하라니...

내 경우에는 링크되던 위치가 4.3에서 5.0으로 변경되어 링크가 정상적으로 되질 않아 발생된 오류로 보인다.

해결 방밥은 경로를 다시 설정해 주는 것으로 정상적으로 빌드가 되었다.
네비게이터에서 프로젝트 파일 선택 후 타겟을 해당 프로젝트로 선택- Build Settings에서 Library Search Paths를 검색해서 경로를 변경해준다.


빌드하면 정상적으로 완료.

ps. 버전마다 라이브러리가 계속 달라지는게 아닐것 같은데 왜 기존에 사용하던 링크가 깨지도록 폴더를 변경하는지 이해가 되질 않는다. 아니면 매크로와 같은것으로 상대 경로를 지정하도록 해주어야 할것 같은데, 내가 방법을 모르는 것인다... 하여튼 iOS 버전 올라가고 xcode 업그레이드 할 때마다 이런 현상이 있는것 같아 상당히 불편하다. 아직 내가 맥쪽 프로그래밍툴에 익숙치 않아서 일까? Visual Studio 사용할때도 종종 있기야 했지만... 변환같은 기능으로 원만하게들 했던것 같은데... 하여튼 불필요한 시간낭비로 생각된다.


 

'Dev > iOS' 카테고리의 다른 글

graph 관련 라이브러리  (0) 2011.10.22
tapku 달력 라이브러리 튜토리얼.  (0) 2011.10.22
NSDate NSDateComponents  (0) 2011.10.20
테이블 화면이 안나타는 현상.  (0) 2011.10.20
NSDate 데이터 조작 방법.  (0) 2011.10.18
:

NSDate NSDateComponents

Dev/iOS 2011. 10. 20. 14:33


NSDate중 날짜 부분만을 변경 하거나 시간 부분만을 변경할 일이 필요해졌다.
NSDate에서 직접 변경은 불가능.
다음과 같은 방법으로 변경 해야한다. 

    
NSCalendar * cal = [NSCalendar currentCalendar];
 
    NSCalendarUnit unit = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit;
 
    NSDateComponents * comps = [cal components:unit  fromDate:birthDate];
 
    NSDateComponents * newComps = [cal components:unit fromDate:time];
    
    // 날자 부분을 변경해야 할 경우.
    [comps setYear:newComps.year];
    [comps setMonth:newComps.month];
    [comps setDay:newComps.day];

    // 시간 부분을 변경해야 할 경우. 
    [comps setHour:newComps.hour];
    [comps setMinute:newComps.minute];
    
    [self setBirthDate:[cal dateFromComponents:comps]];
    [self.tableView reloadData];
 
    
    [comps release];
    [newComps release];
    [cal release];

------ 위 코드 대로 하면 프로그램이 죽는다. -> release하는 코드 삭제 후 정상 동작한다. 아직 메모리 관리에 관련되 충분한 이해가 없다.


* NSDate로 부터 year, month, day 에 해당하는 int값 얻기.

NSDate *today = [NSDate date];

NSDateFormatter *dateFormatter = [[NSDateFormatter allocinit];

NSLocale *locale               = [[NSLocale allocinitWithLocaleIdentifier:@"en_US"];

[dateFormatter setLocale:locale];

[locale release];

// Get year

[dateFormatter setDateFormat:@"yyyy"];

int year = [[dateFormatter stringFromDate:today] intValue];

// Get Month

[dateFormatter setDateFormat:@"MM"];

int month = [[dateFormatter stringFromDate:today] intValue];

// Get Day

[dateFormatter setDateFormat:@"dd"];

int day = [[dateFormatter stringFromDate:today] intValue];

[dateFormatter release];




------------

출처 : Bingsoo blog ( http://bingsoo.com/blog/?p=3708 )

NSDate의 시간 값 초기화/비교

Friday, December 10th, 2010

NSDate의 date method로 현재 날짜를 얻거나 UIDatePick의 date로 설정한 날짜를 얻어오는 경우, time부분을 옵션에서 꺼 놓았다 해도 현재 시각이 기록되는 문제가 발생한다. 두 개의 NSDate의 차이를 계산하는 경우 시간 때문에 정확한 계산이 이루어지지 않는데, 아래와 같은 방법으로 해결할 수 있다.

NSDate *date1, *date2가 있을 때

?
1
2
3
4
5
6
7
8
[gregorian rangeOfUnit:NSDayCalendarUnit
             startDate:&date1
              interval:NULL
               forDate:date1];
[gregorian rangeOfUnit:NSDayCalendarUnit
             startDate:&date2
              interval:NULL
               forDate:date2]; 

를 사용하면 각각 변수의 시간 정보가 그 날의 시작시간(beginning of the day)로 초기화된다. 최종 적으로

?
1
2
3
4
5
6
7
8
int result = 0;
NSCalendar *gregorian =
    [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
 
result =  [[gregorian components:NSDayCalendarUnit
                                   fromDate:date1
                                     toDate:date2
                                        options:0] day];

를 통해 시간 값이 상관 없이 두 NSDate 사이에 며칠의 차이가 있는지 구해낼 수 있다.


'Dev > iOS' 카테고리의 다른 글

tapku 달력 라이브러리 튜토리얼.  (0) 2011.10.22
xcode Update 후 빌드가 오류.  (0) 2011.10.21
테이블 화면이 안나타는 현상.  (0) 2011.10.20
NSDate 데이터 조작 방법.  (0) 2011.10.18
[링크]OpenCoverflow  (0) 2011.10.11
: