본문 바로가기

SWIFT7

UIEdgeInsets 없이 UILabel에 여백 넣기 UILabel에 여백을 넣는 방법은 다양하다. 그 중 NSLayoutConstraint를 이용하는 법을 다뤄보자! class FitLabel: UILabel { //상하좌우 여백 storyboard 입력값 @IBInspectable var edge: CGSize = CGSize(width: 0, height: 0) //너비, 높이가 적용될 Constraint private var mWidthConstraint, mHeightConstraint: NSLayoutConstraint? //좌우 여백값 var edgeAllWidth: CGFloat { return edge.width * 2 } //상하 여백값 var edgeAllHeight: CGFloat { return edge.height * 2 } ove.. 2018. 5. 8.
NSString을 마치 UILabel인 양 사용하기 UILabel을 추가하면 간단하게 글자를 넣을 수 있다. 하지만 sub view가 많아지면 어플이 무거워 질 수 있는데 이럴때에는 NSString을 써주면 좋다. 그렇다면 NSString를 UILabel처럼 배경색을 넣어서 마치 view인듯 사용해 보자~ 먼저, NSString이 들어있는 클래스를 하나 만들자! NSString를 상속받아 확장해도 좋다. 나는 그냥 했다. TextBox라고 명명하겠다. class TextBox { //정렬키 상수 static let CENTER = 0 static let LEFT = 8 static let RIGHT = 16 static let TOP = 1 static let BOTTOM = 2 var mText: NSString var mAlign: Int var mF.. 2017. 11. 20.
UIButton 이미지를 손쉽게 정렬하자~ 아이폰 Swift에서 UIButton 안의 이미지를 원하는 위치에 두려면 Edge Inset을 이용하여 좌우상하에 여백을 줘야 한다 여간 귀찮고 불편한 일이 아닐 수 없다 그래서 좀 더 편하게 이미지를 옮기는 방법을 소개한다 원리는 무지 간단하다 Edge Inset를 가로,세로 기준으로 이미지 크기와 함께 각각 계산해 주면 된다 왼쪽 정렬 (L: 왼쪽 여백, R: 오른쪽 여백, M: 여백, IW: 이미지 너비, BW: 버튼 너비) 가운데 정렬 이 두가지 경우만 이용하면 나머지 정렬도 모두 가능하다 코딩하면 다음과 같다 class ImageButton: UIButton { //가로 정렬 기준 (-1: 왼쪽, 0: 가운데, 1: 오른쪽) @IBInspectable var horizontal: Int = 0 .. 2017. 5. 30.
UIView에 동적으로 버튼을 넣을때 크기를 같게 맞출려면? 안드로이드에서는 layout_weight 로 쉽게 하위 뷰들의 크기를 맞출 수 있다 예를 들어 버튼을 넣는다면 버튼에 layout_weight=1 속성을 추가한 후 LinearLayout에 넣기만 하면 된다 또한 버튼 사이 간격은 layout_margin 로 조절한다 그렇다면 iso의 swift에선 어떻게 하면 될까? 약간 손이 더 가긴 하지만 어렵지 않다 편하게 사용하기 위해 UIView를 커스텀해서 만들어 보았다 버튼 크기를 맞춰주는 동시에 사이 간격, 여백도 줄것이다 class ButtonsView: UIView { private var mGap: CGFloat! private var mPadding: (left: CGFloat, top: CGFloat, right: CGFloat, bottom: .. 2017. 4. 25.
기준점을 중앙으로 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% 작은 크기에서 원래 크기로 애니메이션 효과를 주었다 .. 2017. 3. 21.
이미지를 회전시키고 재사용하는 꿀팁 프로그램 안에서 같은 이미지를 여러곳에 사용할때! 그것도 회전시켜 사용할때! 원본 이미지의 회전된 이미지를 테이블안에 넣어 사용하면 간편하고 빠르다. 물론 메모리를 좀 차지하고, 요즘 디바이스도 워낙 좋아져 속도도 별반 차이 없겠지만 그래도 엄청 많은 곳에 엄청 빈번하게 회전 이미지를 사용할때는 유용하다ㅋ class RotateImageTable { let mSrcImage: UIImage let mUnit: CGFloat var mImages: [Int: UIImage] init(srcName: String, unit: CGFloat) { mSrcImage = UIImage(named: srcName)! //원본 이미지 mImages = [Int: UIImage]() //이미지 테이블 mUnit = u.. 2017. 2. 22.
쿼츠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: "SeoulNams.. 2016. 12. 19.