단위를 포함한 텍스트를 표시할 경우 대게 숫자표시와 단위의 폰트색상이나 크기가 다르게 디자인 되는 경우가 많다.


이제까지는 라벨을 두개로 나누어(숫자, 단위)서 처리했는데 이런방식으로 할때 문제점은 숫자표시에서 자리수가 바뀔경우(동적으로) 단위 레이아웃을 조정해 줘야 하는 귀찮음이 생긴다.


그런데 어트리뷰트스트링을 사용하면 하나의 라벨에서 두가지 디자인을 대응할 수 있기에 편리하다. 예전부터 이 클래스는 알고 있었으나 여기까지 생각이 미치지 못해 응용을 하지 못했다능...



이미 만들어버린 부분은 어쩔수 없어도 다음부터는 이런 스타일을 카테고리화 해서 사용하면 유용할 것 같은 생각이 든다.





NSDictionary *valueAttribute = @{ NSForegroundColorAttributeName:[UIColor blackColor],

                                       NSFontAttributeName:[UIFont systemFontOfSize:16.0f]};


NSAttributedString *valueString = [[NSAttributedString alloc] initWithString:@"1234"

                                                              attributes: valueAttribute];

    


NSDictionary *unitAttribute = @{ NSForegroundColorAttributeName:[UIColor lightGrayColor],

                                                NSFontAttributeName:[UIFont boldSystemFontOfSize:12.0f] };

NSAttributedString *unitString = [[NSAttributedString alloc] initWithString:@"km"

                                                              attributes:unitAttribute];

    

    

NSMutableAttributedString *mutableAttributedString = [[NSMutableAttributedString alloc] init];

[mutableAttributedString appendAttributedString:string1];

[mutableAttributedString appendAttributedString:string2];


//라벨에 텍스트를 설정

_label.attributedText = mutableAttributedString;


Posted by 악당잰 트랙백 0 : 댓글 0

댓글을 달아 주세요

가끔씩 디자인 편의상 전면에 알파값을 준 투명한 뷰로 덮을 경우가 있다.

이러한 뷰에서 터치이벤트를 받지 않고 통과시켜 뒤에 있는 뷰가 동작할 수 있도로 하기 위해서는 아래와 같이 메소드를 오버라이드 해주면 된다.





- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {

    

    //자신의 뷰에서 터치이번트를 통과시키고 싶을경우에 요렇게..

    UIView *touchedView = [super hitTest:point withEvent:event];

    if([self isEqual:touchedView] == YES){

        return nil;

    }

    

    return touchedView;

}



메소드명이 테스트라.. 뭔가 했는데 이런용도가 있었다능...

Posted by 악당잰 트랙백 0 : 댓글 1

댓글을 달아 주세요

  1. addr | edit/del | reply 김기봉 2015.01.26 14:09

    view.isUserInteractionEnabled = NO;
    이렇게 해당 뷰에 옵션을 줘도 통과가 된다고 알고 있어요.

개발을 하다보면 더미 데이타(테스트 데이타)가 필요할 때가 있다.  뭐 루프 돌려서 인덱스 붙이는 식으로 데이터를 만들어서 쓰기는 하는데..




로직테스트 이외에 실데이터로 돌렸을 때에 아무래도 생각치 못했던 문제들이 발견 때문에 가급적 실제 데이터 같은걸 만들 고 싶었는데 구글링을 해보니 꽤 많이 발견되었다.

게다가 테스트용 이미지도 생성해주는 사이트도 덤으로 발견!



나중에 유용할지 모르니 메모식으로 남겨둔다.



테스트 이미지 생성

프로필사진이미지 생성 (영어)

http://uifaces.com/

테스트 이미지생성

 http://placehold.jp/

img태그URL로 지정가능(http://placehold.jp/{넓이}x{높이}.png)

http://placeimg.com/

카테고리별로 지정가능


테스트 문자열 생성 

일본어 텍스트를 생성(일본어)

Source URL: http://lipsum.sugutsukaeru.jp/

HTML태그 붙어있는 텍스트 출력 (영어)

Source URL: http://www.blindtextgenerator.com/snippets?snipps=ANY-snippets-lorem


일본이름 생성

 http://g-chan.dip.jp/square/archives/2009/09/trpg_2.html

영어이름 생성

Source URL: http://random-name-generator.info/



참고사이트


http://qiita.com/yoshimana/items/ebd69b9961429ce1eacf

http://www.ideaxidea.com/archives/2011/04/placeholdersmatome.html



Posted by 악당잰 트랙백 0 : 댓글 1

댓글을 달아 주세요

  1. addr | edit/del | reply 김기봉 2015.01.26 14:12

    역시 세상에는 같은 문제로 고민을 하는 사람이 분명 있는듯..
    좋네요.