전체 글

1️⃣ 구현하려는 것같은 태그 버튼이 여러 번 재사용되고 있음.태그 버튼들은 모두 일정한 간격으로 떨어져 있고, 왼쪽 정렬이 되어 있음. (오른쪽 여백의 너비는 매번 달라짐)장소 검색 시 필터링을 위해 어떤 버튼이 선택 되었는지 알 수 있어야 함.  2️⃣ 생각한 방법2.1. 컬렉션뷰로 할까?컬렉션뷰로 구현한다면 데이터 파악과 UI 설정이 쉬울 것이라 생각했습니다.이유:인덱스 번호로 어떤 버튼이 선택되었는지 쉽게 알 수 있고버튼이 너비를 넘어갈 경우 컬렉션 뷰가 자동으로 2번째 줄로 넘겨주기 때문에2.2. 컬렉션뷰 기각!하지만 레이아웃을 매 아이템마다 다르게 업데이트 해줘야 하는 번거로움이 있었습니다.2.3. 스택뷰로 가자!위와 같은 이유로 스택뷰로 구현하게 되었습니다.→ 반복되는 코드를 줄이고 재사용하..
· Swift/문법
1️⃣ 정의 및 기본 구조▶︎ 정의⇒ 클래스의 인스턴스를 하나만 생성하여 전역적으로 사용하는 디자인 패턴▶︎ 기본 구조class MySingleton { // 1. static 키워드 사용하여 전역 인스턴스 생성 static let shared = MySingleton() // 2. 다른 곳에서 추가 인스턴스 생성 방지 private init() {} // 3. 기타 코드 작성 // 예시) let myName: String = "유림"}class Test { // 다른 클래스에서 MySingleton에 접근 가능함 //let mySingleton = MySingleton() //mySingleton.myName print(MySi..
📌 문제 : 세 번째 탭에서 탭바의 색이 회색으로 변함세 번째 탭에서 탭바가 회색으로 변하는 이유는 '스크롤 뷰'와 닿았기 때문이다.💡 tabBar.backgroundColor = .white 를 해도 회색으로 변하는 이유tabBar.backgroundColor = .white 만 설정할 경우, translucency와 backgroundImage의 영향을 받을 수 있기 때문.-Translucency: true일 경우, 배경색이 탭바 뒤 컨텐츠와 블렌드 됨.-BackgroundImage: transparency 또는 gradient effect가 적용된 default background image가 시스템에 의해 적용됨  💡 해결 : UITabBarAppearance 설정let appearance ..
-> scaleAspectFill 특인 것으로 사료됨.....-> scaleToFill이나 scaleAspectFit을 적절히 사용하자.....
1. AVKit으로 동영상 재생하는 코드아래 코드는 AVKit으로 동영상을 재생하는 ViewController이다.import UIKitimport AVKitclass ViewController: UIViewController { let url = URL(string: "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4")! // AVPlayerController 생성 let playerController = AVPlayerViewController() // AVPlayer 생성 var player: AVPlayer! // 재생 버튼 생성 l..
🔴 문제문제 설명햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장을 하게 됩니다. 상수가 일하는 가게는 정해진 순서(아래서부터, 빵 – 야채 – 고기 - 빵)로 쌓인 햄버거만 포장을 합니다. 상수는 손이 굉장히 빠르기 때문에 상수가 포장하는 동안 속 재료가 추가적으로 들어오는 일은 없으며, 재료의 높이는 무시하여 재료가 높이 쌓여서 일이 힘들어지는 경우는 없습니다.예를 들어, 상수의 앞에 쌓이는 재료의 순서가 [야채, 빵, 빵, 야채, 고기, 빵, 야채, 고기, 빵]일 때, 상수는 여섯 번째 재료가 쌓였을..
let textNodes = document.querySelectorAll("div.tt_article_useless_p_margin.contents_style > *:not(figure):not(pre)"); textNodes.forEach(function(a) { a.innerHTML = a.innerHTML.replace(/`(.*?)`/g, '$1'); });