본문 바로가기 메뉴 바로가기

권말련의 게임 블로그

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

권말련의 게임 블로그

검색하기 폼
  • 분류 전체보기 (1340)
    • 로스트아크 (211)
      • 대항해 (126)
      • 모험의 서 (75)
      • 모코코(대륙) (119)
      • 기억의 오르골 (18)
      • 업적 (27)
    • 게임 (473)
      • 엘든링 (151)
      • 마비노기 모바일 (8)
      • 오버워치2 (23)
      • 포켓몬고 (26)
      • 팰월드 (21)
      • 디아블로4 (43)
      • 마인크래프트 (4)
      • 몬스터 헌터 와일즈 (1)
      • 오딘 (22)
      • 아이온 클래식 (75)
      • 바람의 나라:연 (24)
      • AFK아레나 (45)
      • 배틀그라운드 (2)
      • RPG게임 (7)
      • 리니지TL (2)
      • 모바일게임 (17)
    • 모바일게임 쿠폰 (8)
    • IT (201)
      • iOS (67)
      • Android (38)
      • PHP + Mysql (7)
      • AWS+Window Server (5)
      • 블로그 (32)
    • 일상 (76)
      • 맛집 (8)
      • 운동 (15)
      • 여행 (4)
      • 리뷰 (9)
  • 방명록




티스토리 뷰

IT/iOS

[iOS] UIView 부분적으로 라운드 적용하기

권말련 2015. 5. 19. 15:18
반응형

[iOS] UIView 부분적으로 라운드 적용하기


제목 짓기가 어렵네요. 이걸 머라고 표현해야 하나.

프로젝트를 하다보면 라운드 형식의 UIView 또는 UIButton을 만들어야 하는 상황이 발생합니다. 굳이 이미지를 입히지 않아도 코드로 적용을 할 수 있습니다. 이미지를 보면서 설명하겠습니다.


[프로젝트] 힐링트리 로그인 화면


위 이미지와 같이 상단 "이메일로 가입하기"는 UIView를 상단 좌, 우측만 라운드를 준것이고 하단에 "FACEBOOK으로 가입하기", "NAVER로 가입하기" UIButton은 네군데 모두 라운드를 주었습니다.


하단 버튼 두개는 아래 코드와 같이 자주 사용되는 소스코드로 적용하였습니다.

facebookBtn.layer.borderWidth = 1.0;

facebookBtn.layer.borderColor = [[UIColor clearColor]CGColor];

facebookBtn.layer.cornerRadius = 5.0;

facebookBtn.layer.masksToBounds = YES;


문제는 위의 UIView 처럼 상단 두군데만 라운드를 주는 것처럼 부분으로 라운드를 줄 수 있습니다.

UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:topView.bounds byRoundingCorners:(UIRectCornerTopLeft | UIRectCornerTopRight) cornerRadii:CGSizeMake(5.0, 5.0)];

    

CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];

maskLayer.frame = topView.bounds;

maskLayer.path  = maskPath.CGPath;

topView.layer.mask = maskLayer;


위 소스코드에서 중요한 부분이 byRoundingCorners 부분입니다. 

(UIRectCornerTopLeft | UIRectCornerTopRight)

만 적용하였기 때문에 상단 좌, 우측만 라운드가 먹혔고 라운드 주고 싶은 부분만 위처럼 적용하면 됩니다.


typedef NS_OPTIONS(NSUInteger, UIRectCorner) {

    UIRectCornerTopLeft     = 1 << 0,

    UIRectCornerTopRight    = 1 << 1,

    UIRectCornerBottomLeft  = 1 << 2,

    UIRectCornerBottomRight = 1 << 3,

    UIRectCornerAllCorners  = ~0UL

};


위 처럼 5가지 옵션을 선택하여 적용시켜 줍니다.



반응형
그리드형
저작자표시 (새창열림)

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

App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.  (0) 2015.09.18
[iOS] uiscrollview 스크롤시 맨위로 버튼 처리  (0) 2015.08.13
x-apple-amd-action_message  (13) 2015.08.03
[iOS] UILabel random Textcolor  (1) 2015.07.14
[iOS] 앱평가 하기, 리뷰 남기기는 iRate로  (0) 2015.03.30
iOS8 버그 unexpected nil window in _UIApplicationHandleEventFromQueueEvent, _windowServerHitTestWindow  (0) 2014.11.06
iOS8 푸쉬 등록 에러메세지 (registerForRemoteNotificationTypes: is not supported in iOS 8.0 and later)  (0) 2014.10.02
UICollectionview cell selection  (0) 2014.09.15
  • 카카오톡 공유하기
  • 네이버 블러그 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 구글 플러스 공유하기
  • 카카오스토리 공유하기

댓글
반응형
공지사항
최근에 올라온 글

Blog is powered by Tistory / Designed by Tistory

티스토리툴바