Skip to content

25thSoptiOS/KimHyunji

Repository files navigation

1_Week

1_Assignment (instagramSopt)

  • Profile Round Image ..

    // 프로필 이미지 뷰
    @IBOutlet var imgSopt: UIImageView!
    
    // 프로필 이미지 둥글게 만들기
    imgSopt.layer.cornerRadius = 50/2
  • Like Button Action

    // 버튼 동작을 위한 IBOutlet (하트 버튼)
    @IBOutlet var likeBtn: UIButton!
    
    // 버튼 클릭시 나타날 레이블
    @IBOutlet var text: UILabel!
    
    // 하트 버튼 눌렀을 때 동작하는 IBAction
    @IBAction func onClick(_ sender: Any) {
      if(check){
        self.text.text = "h._.jiee 님이 좋아합니다."
        self.likeBtn.setImage(afterBtn, for: .normal)
        check = false
      }
      else {
        self.text.text = ""
        self.likeBtn.setImage(beforeBtn, for: .normal)
        check = true
      }
    }

1_Advanced

Switch-Image Action (switchCandle)

  • Switch on/off - Image change

    class CandleVC: UIViewController {
    
        @IBOutlet var candleImg: UIImageView!
        @IBOutlet var candleText: UILabel!
        
          // 상수에 이미지 지정
        let onImg = UIImage(named: "candle-on.jpg")
        let offImg = UIImage(named: "candle-off.jpg")
        
        override func viewDidLoad() {
            super.viewDidLoad()
        }
        
          // sender를 Any가 아닌 UISwitch로 선언
        @IBAction func candleAction(_ sender: UISwitch) {
          
            // 스위치 on
            if sender.isOn {
                candleText.text = "On"
                candleImg.image = onImg
            }
          
            // 스위치 off
            else {
                candleText.text = "Off"
                candleImg.image = offImg
            }
          
        }
    

Background Color Change (changeBackground)

  • User Slider

            // 슬라이더 세개 IBOutlet 선언
            @IBOutlet var sliderRed: UISlider!
        @IBOutlet var sliderGreen: UISlider!
        @IBOutlet var sliderBlue: UISlider!
    
            // IBAction의 sender를 UISlider로 선언
        @IBAction func updateColor(_ sender: UISlider) {
          
            // 슬라이더 값을 받아와 view의 배경색 변경
            self.view.backgroundColor =
            UIColor.init(red:CGFloat(self.sliderRed.value),
            green: CGFloat(self.sliderGreen.value),
            blue: CGFloat(self.sliderBlue.value), alpha: 1.0)
          
        }

    Segment Control (segmentControl)

    • First View

            // 세그먼트 IBOutlet
          @IBOutlet var leftRightSegControl: UISegmentedControl!
          // segment 상태를 문자열로 Second View에 전달하기 위한 변수
          var makeString: String!
      
            // Second View로 데이터를 전달하기 위한 오버라이드 함수 prepare
            override func prepare(for segue: UIStoryboardSegue, sender: Any?){
                // 결과값을 보낼 View 지정
              let destVC = segue.destination as! ResultVC
                // Segment의 인덱스를 받아와서 해당 인덱스의 타이틀을 저장
              let situation : String! = leftRightSegControl.titleForSegment(at:                                                                             leftRightSegControl.selectedSegmentIndex)
              
              makeString = situation
              makeString += " 선택됨"
              
              // ViewController에서 정보를 받아 문자열 출력
                // Second View의 info 문자열 변수에 makeString을 전달
              destVC.info = makeString
              
              // ViewController에서 Index를 받아 세그먼트 출력
                // Second View의 selectedSegmentIndex 정수 변수에 선택된 인덱스를 전달
              destVC.selectedSegmentIndex = leftRightSegControl.selectedSegmentIndex
          }
    • Second View

            // 세그먼트 IBOutlet
            @IBOutlet var leftRightSegControl: UISegmentedControl!
            // 라벨 IBOutlet
          @IBOutlet var displayLabel: UILabel!
      
            // 세그먼트 인덱스를 저장할 변수
            var selectedSegmentIndex: Int!
            // 라벨 텍스트를 저장할 변수
          var info: String!
      
            override func viewDidLoad() {
              super.viewDidLoad()
      
              // String 변수를 사용해 segment의 text를 저장한다.
              if let contentString = info
              {
                  displayLabel.text = contentString
              }
              
              // Integer 변수를 사용해 segment의 index를 저장한다.
              if let whichSelect = selectedSegmentIndex
              {
                  leftRightSegControl.selectedSegmentIndex = whichSelect
              }
          }

Keyboard Control (signUpExample)

  • Keyboard

    // delegate 처리를 위해 UITextFieldDelegate 추가
    class signUpVC: UIViewController, UITextFieldDelegate
    
            // 키보드 done을 누르면 다음 텍스트 필드로 키보드 내려가게 하기
        func textFieldShouldReturn(_ textField: UITextField) -> Bool {
            
            if textField == self.userId {
                
                textField.resignFirstResponder()
                
                self.loginPassword.becomeFirstResponder()
            }
            
            textField.resignFirstResponder()
            
            return true
        }

    2_Week

    Background Control Button (buttonBackground)

    • Button Control
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // segue 별로 이름을 지정할 수 있음
        // 여러 개의 segue 중 어떤 segue가 선택 되었는 지에 따라
        // 적절한 작업을 수행할 수 있도록 함
        
        let destination = segue.destination
        let button = sender as! UIButton
        
        // 버튼 텍스트와 동일한 텍스트를 결과 view에 title로 지정
        destination.title = button.titleLabel?.text
        
        // 버튼 색상과 동일한 색을 배경으로 지정
        destination.view.backgroundColor = button.titleColor(for: .normal)
    }

    2_Advanced

    Calculator Example (CustomCalculator)

    • Custom Button
     class RoundButton: UIButton {
         required init(coder aDecoder: NSCoder){
             super.init(coder: aDecoder)!
             self.layer.cornerRadius = self.bounds.size.width * 0.5
         }
     }
    • Button Control
     @IBAction func touchDigit(_ sender: UIButton) {
         let digit = sender.currentTitle!
         if userIsInTheMiddleOfTyping {
             let textCurrentlyInDisplay = display.text!
             display.text = textCurrentlyInDisplay + digit
         } else {
             display!.text = digit
         }
         userIsInTheMiddleOfTyping = true
     }

    2_Assignment (loginStack)

    7_Advanced

    TableView (TableViewEx)

7_Seminar

Social Login - Facebook (SocialLogin)

Social Login - Kakao (SocialLogin)

진행중

About

김현지

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •