Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- css position
- 웹 개발 트렌드
- 자바스크립트 반복문
- javascript opreators
- 자바스크립트
- 자바스크립트 scope
- javascript closure
- 자바스크립트 async await
- front-end
- css 포지션
- HTML
- css3
- html 주석
- css display
- 프론트엔드
- 자바스크립트 클로저
- 자바스크립트 생성자 함수
- 자바스크립트 프로미스
- 티스토리챌린지
- CSS
- javascript opreator
- javascript
- 자바스크립트 스코프
- 자바스크립트 실행 컨텍스트
- html 코드
- 자바스크립트 연산자
- 자바스크립트 promise
- 자바스크립트 상속
- 자바스크립트 클래스
- 오블완
Archives
- Today
- Total
Multi Developer SuHo
iOS 프로그래밍 13주차 Report (BMI 앱 만들기) 본문
SMALL
https://wrtn.ai/
뤼튼에서 소스를 구성해본 BMI 판정 예제소스 입니다.
- 모든 내용은 다음과 같은 자료를 활용하여 제작하게 되었습니다.
- 출처: Do it! 스위프트로 아이폰 앱 만들기 입문, 송호정, 이범근 저,이지스퍼블리싱, 2023년 01월 20일
출처: https://www.yes24.com/Product/Goods/116918114
// 사용자의 키와 몸무게 정보를 저장하는 구조체
struct Person {
var height: Double // 키 (미터 단위)
var weight: Double // 몸무게 (킬로그램 단위)
}
// BMI를 계산하고 판정하는 클래스
class BMICalculator {
var person: Person // 사용자 정보
init(person: Person) {
self.person = person
}
// 사용자의 BMI를 계산하는 함수
func calculateBMI() -> Double {
let heightInMeter = person.height / 100.0 // 키를 미터 단위로 변환
return person.weight / (heightInMeter * heightInMeter) // BMI 계산 공식: 몸무게(kg) / 키(m)^2
}
// 사용자의 BMI 결과에 따라 다른 스토리를 반환하는 함수
func getStoryForBMI() -> String {
let bmi = calculateBMI()
// BMI 결과에 따른 스토리 분기
if bmi < 18.5 {
return "당신은 저체중입니다. 건강한 식습관과 꾸준한 운동을 통해 체중을 증가시켜 보세요."
} else if bmi < 23 {
return "당신은 정상 체중입니다. 현재의 건강한 생활
alpha
배경 설정을 할때는 인덱스를 조절하고 safe area 아래로 하면 인터페이스를 더욱 효과적으로 제공해준다
https://wrtn.ai/
iOS에서 사용하는 세그웨이(Segue)의 종류를 표로 정리해드리겠습니다. 세그웨이는 두 개의 뷰 컨트롤러 간의 화면 전환을 관리하는 역할을 합니다.
세그웨이 종류설명
Show (e.g. Push) | 네비게이션 컨트롤러의 스택에 뷰 컨트롤러를 푸시합니다. 이전 뷰 컨트롤러로 돌아갈 수 있는 '뒤로' 버튼이 자동으로 생성됩니다. |
Show Detail (e.g. Replace) | 스플릿 뷰 컨트롤러의 세부 정보 뷰 컨트롤러를 교체합니다. |
Present Modally | 새로운 뷰 컨트롤러를 현재 뷰 컨트롤러 위에 모달 형식으로 표시합니다. 이 방식은 새로운 작업을 시작하거나 현재 작업을 중단하고 옵션을 선택하도록 사용자에게 요청할 때 유용합니다. |
Present as Popover | 팝오버 형식으로 새로운 뷰 컨트롤러를 표시합니다. 팝오버는 작은 양의 정보를 표시하거나 사용자에게 선택 사항을 제공하는 데 유용합니다. |
Custom | 개발자가 정의한 사용자 지정 세그웨이입니다. 이 세그웨이를 사용하려면 UIStoryboardSegue의 서브클래스를 작성하고 해당 클래스에서 화면 전환 애니메이션을 정의해야 합니다. |
위 표는 간단한 설명을 포함하고 있습니다. 각 세그웨이의 동작은 뷰 컨트롤러의 컨텍스트와 함께 결정됩니다. 따라서, 각 세그웨이가 어떻게 동작하는지 이해하는 것은 중요합니다.
import AVKit
import AVFoundation
// ViewController 클래스
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
// 재생 버튼이 눌렸을 때 호출되는 함수
@IBAction func playButtonTapped(_ sender: Any) {
// 비디오 파일의 경로를 설정합니다.
guard let path = Bundle.main.path(forResource: "BMI1", ofType:"mp4") else {
debugPrint("BMI1.mp4 not found")
return
}
// 비디오 파일의 URL을 생성합니다.
let videoURL = URL(fileURLWithPath: path)
// AVPlayerViewController 인스턴스를 생성하고 설정합니다.
let playerViewController = AVPlayerViewController()
playerViewController.player = AVPlayer(url: videoURL)
// AVPlayerViewController를 현재 뷰 컨트롤러에 모달로 표시합니다.
self.present(playerViewController, animated: true) {
playerViewController.player!.play()
}
}
}
alt 키 누르고 ? 클릭하면 도움말이 나온다.
Swift에서 웹사이트를 로드하기 위해서는 WKWebView를 사용할 수 있습니다. WKWebView는 WebKit 프레임워크에서 제공하는 클래스로 웹 콘텐츠를 앱에 표시하는 데 사용됩니다.
아래는 "https://www.apple.com" 웹사이트를 로드하는 Swift 코드입니다
import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
var webView: WKWebView!
override func loadView() {
webView = WKWebView()
webView.navigationDelegate = self
view = webView
}
override func viewDidLoad() {
super.viewDidLoad()
// 웹사이트의 URL을 설정합니다.
let url = URL(string: "https://www.apple.com")!
webView.load(URLRequest(url: url))
// 웹사이트에 대한 캐싱과 쿠키 사용을 허용합니다.
webView.allowsBackForwardNavigationGestures = true
}
}
네이버 홈페이지로 이동한 기능을 구현하였습니다.
Tab bar Controller 에서 두개의 사이트로 이동할 수 있는 기능을 구현했습니다.
LIST
'Swift 과제물' 카테고리의 다른 글
iOS 프로그래밍 15주차 (0) | 2023.12.12 |
---|---|
iOS 프로그래밍 14주차 (신체나이 계산기 앱) (0) | 2023.12.05 |
iOS 프로그래밍 12주차 Report (BMI 앱 만들기) (2) | 2023.11.21 |
iOS 프로그래밍 11주차 Report (0) | 2023.11.14 |
iOS 프로그래밍 10주차 레포트 (0) | 2023.11.07 |