iOS AutoLayout 완벽 가이드 - 실무 프로젝트를 위한 실전강의

iOS AutoLayout 완벽 가이드 - 실무 프로젝트를 위한 실전강의

(16개의 수강평)

243명의 수강생
27,500원
지식공유자 · iOS Developer
60회 수업 · 총 14시간 39분 수업
평생 무제한 시청
수료증 발급 강좌
수강 난이도 '초급'
김태완 프로필

chat app만드는 강의를 듣고 공부하다 질문이 있습니다 김태완 2달 전

chat app 강의를 듣고 문자메세지말고

이미지 메세지를 보내는 것도 해보고 싶어서

이미지 뷰의 넓이를 고정해놓고 이미지 크기에 따라 변하는 높이를 구현해봤습니다.

그런데 생각한데로 잘나오지 않습니다.

좋은 방법이 있을까요?

 

 

 

 

2
문태부 프로필

알림후 클릭시 이동 문제 문태부 5달 전

AppDelegate.swift

 

 

    func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response : UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {

        print("userNotificationCenter 2")

        if response.notification.request.identifier == "testIdentifier" {

            print("handling notification with the identifier 'testIdentifer'")

        }

        

        if let notification = response.notification.request.content.userInfo as? [String:AnyObject]{

            print (notification as Any)

            

            let message = parseRemoteNotification(notification: notification)

            print(message!)

            

            let seq = parseOrderSeq(notification: notification)

            print(seq!)

          

            var loginVC : UIViewController?

            loginVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LoginViewController") as! LoginViewController

            

            let appDelegate = UIApplication.shared.delegate as! AppDelegate

            appDelegate.window?.rootViewController = loginVC

        }

        completionHandler()

    }


 

console log

2019-05-23 15:14:41.282374+0900 bossapp[38816:10485392] Warning: Attempt to present <UIAlertController: 0x105007200> on <bossapp.LoginViewController: 0x103526eb0> whose view is not in the window hierarchy!

하면서 구현이 안되고 그냥 바로 원래 되던 메인으로 가네요. 어떻게 구현 하면 좋을까요?!

1
vampireahn 프로필

그래프 강좌 실행시 Thread오류 납니다. vampireahn 6달 전

class ViewController: UIViewController {

@IBOutlet weak var graph1Height: NSLayoutConstraint!

@IBOutlet weak var graph2Height: NSLayoutConstraint!

@IBOutlet weak var graph3Height: NSLayoutConstraint!

@IBOutlet weak var graph4Height: NSLayoutConstraint!

@IBOutlet weak var graph5Height: NSLayoutConstraint!

override func viewDidLoad() {

super.viewDidLoad()

graph1Height = graph1Height.changeMultiplier(value: 0.9 as! CGFont) <- Thread 오류

graph2Height = graph2Height.changeMultiplier(value: 0.8 as! CGFont)

graph3Height = graph3Height.changeMultiplier(value: 0.7 as! CGFont)

graph4Height = graph4Height.changeMultiplier(value: 0.8 as! CGFont)

graph5Height = graph5Height.changeMultiplier(value: 0.5 as! CGFont)

}

}

extension NSLayoutConstraint {

func changeMultiplier(value: CGFont) -> NSLayoutConstraint {

    NSLayoutConstraint.deactivate([self])

let newConstraint = NSLayoutConstraint.init(item: self.firstItem!, attribute: self.firstAttribute, relatedBy: self.relation, toItem: self.secondItem, attribute: self.secondAttribute, multiplier: value as! CGFloat, constant: self.constant)

newConstraint.priority = self.priority

newConstraint.shouldBeArchived = self.shouldBeArchived

newConstraint.identifier = self.identifier

NSLayoutConstraint.activate([newConstraint])

return newConstraint

}

}

3
신동현 프로필

swift 파일명 신동현 9달 전

강의 잘 듣고 있습니다.

그런데 Popup_3_Align_Important 강의를 따라하다가 강의중에 강사님이

PopupViewController.swift 와 PopupViewController.storyboard 파일을 생성했는데요

제가 파일명이 길어서 간단하게 아래와 같이 줄였습니다.

PopupView.swift 와 PopupView.storyboard 파일을 생성후 작업해서 실행해보니 팝업 실행시에 오류나서 화면이 멈추더군요.. 다른 문제가 있나 이것 저것 수정해보다 결국 파일명을 강사님이 한것과 똑같이 수정하니 잘 동작하더군요

이상해서 질문 남깁니다. 혹시 파일명을 정할때 무슨 규칙 같은게 있나요?

1
김련호 프로필

"00" 혹은 "000" 입력시에 TextField의 값이 0으로 바뀜 김련호 9달 전

스스로 해결해보라고 하셔서 해결한 내용과 검증을 받고 싶어 질문 남깁니다 ~

문제는 NumberFormat으로 표시한 comma 때문에 Int로 변환시에 nil 이 되는 문제였고,

아래와 같이 String.replacingOccurrences로 해결하였는데

혹시 더 좋은 방법이 있을지 질문 드립니다.

func deliverButtonValue(number: String) {        

var currentNumber: Int?

var newNumber = Int(number)!

// customTextField의 string에서 comma를 제거

if let curr = customTextField.text {

currentNumber = Int(curr.replacingOccurrences(of: ",", with: ""))

}

if let hasNumber = currentNumber {

if number == "00" {

newNumber = hasNumber * 100

} else if number == "000" {

newNumber = hasNumber * 1000

}

}

let formatter = NumberFormatter()

formatter.numberStyle = .decimal

customTextField.text = formatter.string(from: NSNumber(value: newNumber))

}

1
김은정 프로필

Custom_Keyboard_3 질문 김은정 10달 전

안녕하세요 Custom_Keyboard_3 강의를 보고 따라하던 중에 오류가 발생하여 질문 남깁니다.

현재 XCode 10.1 (10B61) 에서 작업 중 입니다.

CustomKeyboard Delegate를 만든 후 버튼 클릭 하였으나 앱이 비정상 종료되고 있습니다.

func keyboardTapped(str: String) {

print(str)

}

오류 내용은 아래와 같습니다.

[MC] System group container for systemgroup.com.apple.configurationprofiles path is ...

[MC] Reading from private effective user settings.

7분대 강의까지는 따라 했는데 구글링을 해 보아도 이유를 잘 모르겠습니다.

확인 부탁드립니다.

감사합니다.

0
서강록 프로필

FirstItem & SecondItem 순서에 관해 질문이있습니다. 서강록 2018.11.13

안녕하세요.

Multiplier1 강의를 들으며 따라해보는 중이 똑같이 나오지않아 질문드립니다.

강의와 다른점은 xcode 10.1 을 사용하고있습니다.

강의처음부터 똑같이 leading / trailing / top / bottom 을 추가하였고

강의해주신 내용처럼

trailing / bottom은 나누기로 적용된다고하셨는데 ..

처음에 저는 trailing / bottom도 multiplier가 곱셈으로 적용되어 커진것을 확인할 수 있었습니다.

그러면서 삽질을 좀하다가 보니...

FirstItem & SecondItem 순서를 바꿔보니 나누기로 적용이 되더군요..

아직 뒤의 강의를 더 듣진않았지만

FirstItem & SecondItem 은 시스템이 정해주는것이라고 들었는데

혹시 저는 왜 시스템이 다르게 지정되있는지 궁굼합니다.

그리고 뒤에 FirstItem & SecondItem에 관한 설명에 대한 강의가 있나요?

감사합니다.

0
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강좌들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스