블로그 이미지
매몰

모바일 어플리케이션 개발 1인 기업 고영진모바일입니다. 저와 함께 맛깔스러운 앱을 만들어 보아요~

Rss feed Tistory
개발/ios 2017.03.21 19:18

기준점을 중앙으로 Scale UIView 애니메이션 하기

swift 에서는 간단하게 뷰 애니메이션을 구현할 수 있다.


그런데 크기를 변경시키는 애니메이션에서는 주의 해야 할 점이 있다

바로 기준점이다



다음을 보자



let width = frame.width

let height = frame.height

        

frame.size.width = width * 0.2

frame.size.height = height * 0.2

        

UIView.animateWithDuration(1, delay: 0, options: [.CurveEaseInOut], animations: {

      self.frame.size.width = width

      self.frame.size.height = height

            

}, completion: nil)



20% 작은 크기에서 원래 크기로 애니메이션 효과를 주었다




기준점이 0이 되어 버렸다. 당연한 결과이다.

하지만 보통 중앙을 기준으로 할때가 많지 않은가?


이렇게 바꿔보자



let x = frame.origin.x

let y = frame.origin.y

let width = frame.width

let height = frame.height

        

frame.origin.x = x + ((width * 0.8) / 2)

frame.origin.y = y + ((height * 0.8) / 2)

frame.size.width = width * 0.2

frame.size.height = height * 0.2

        

UIView.animateWithDuration(1, delay: 0, options: [.CurveEaseInOut], animations: {

     self.frame.origin.x = x

     self.frame.origin.y = y

     self.frame.size.width = width

     self.frame.size.height = height

            

}, completion: nil)



X,Y 좌표를 100 - 20 = 80%의 반으로 옮긴 후 원래 위치로 애니메이션을 하였다




기준점이 중앙이 되었다. 

이런 방식으로 위치도 같이 변경해 주면 다양한 기준점으로 애니메이션 해줄 수 있다.



 

 



수제 앱 장인: 고영진


고영진모바일 1인기업 대표 겸 개발자 

  

     실패만 하고 있어도 꿈을 포기하지 않는 남자 

     제가 직접 경험하고 습득한 지식을 위주로 올릴게요

 




사업자 정보 표시
고영진모바일 | 고영진 | 서울특별시 관악구 낙성대동 서울대연구공원 SK상생혁신센터 | 사업자 등록번호 : 109-11-82076 | TEL : 010-9990-3674 | Mail : gyjmeba@hanmail.net | 통신판매신고번호 : 2010-서울강서-0217호 | 사이버몰의 이용약관 바로가기
개발/ios 2016.12.19 10:45

쿼츠2D로 자유롭게 폰트 크기를 바꿔보자



직접  UIView를 상속해서 자신만의 UI객체를 만들때 쿼츠 2D를 사용한다

이때, 폰트 크기는 어떻게 바꿀수 있을까?


NSString를 이용하면 간단하다.



class MyView: UIView {

    

    var mFontAttrDic: [String: NSObject]!

    var mFont: UIFont!

    var mText: NSString!

    

    override func drawRect(rect: CGRect) {

        //문자 출력

        mText.drawInRect(CGRectMake(0, 0, 100, 100), withAttributes: mFontAttrDic)

    }

    

    func intiFont() {

        //NSString 설정

        mText = "테스트"

        

        //폰트 설정

        mFont = UIFont(name: "SeoulNamsan CM", size: 10)!

        

        //NSString attribute 배열 설정

        mFontAttrDic = [

            NSForegroundColorAttributeName: UIColor.blackColor(),

            NSParagraphStyleAttributeName: NSMutableParagraphStyle(),

            NSFontAttributeName: mFont

        ]

    }

    

    func changeFontSize(size: CGFloat) {

        //폰트 사이즈를 변경하여 arriribute 배열 적용

        mFontAttrDic[NSFontAttributeName] = mFont.fontWithSize(size)

        

        //화면 갱신

        setNeedsDisplay()

    }

}




사용해 보자


let myView = MyView(frame: frame)

myView.initFont()


//폰트 크기를 바꾸고 싶을때 호출

myView.changeFontSize(20)





 

 



수제 앱 장인: 고영진


고영진모바일 1인기업 대표 겸 개발자 

  

     실패만 하고 있어도 꿈을 포기하지 않는 남자 

     제가 직접 경험하고 습득한 지식을 위주로 올릴게요

 



사업자 정보 표시
고영진모바일 | 고영진 | 서울특별시 관악구 낙성대동 서울대연구공원 SK상생혁신센터 | 사업자 등록번호 : 109-11-82076 | TEL : 010-9990-3674 | Mail : gyjmeba@hanmail.net | 통신판매신고번호 : 2010-서울강서-0217호 | 사이버몰의 이용약관 바로가기
TOTAL 69,581 TODAY 10