728x90 ๋ฐ์ํ ๐ iOS138 [iOS/UI] ๋ค๋น๊ฒ์ด์ ๋ฐ ์์ดํ ํน์ ๋ถ๋ถ ์ ๋ค๋ฅด๊ฒ ํ๊ธฐ ๋ค๋น๊ฒ์ด์ ๋ฐ์์ ์์ดํ ์ ์์ ํน์ ๋ถ๋ถ๋ง ๋ฐ๊ฟ ์๊ฐ ์์๋ค. ๊ทธ๋์ ์ฐพ์๋ณธ ๊ฒฐ๊ณผ ๋ฒํผ์ ์ปค์คํ ํ์ฌ ๊ทธ ์์ ์ ํ์ค ๋ค์ ๋ฒํผ์ ์ ๋ํ๊ฒ์ ๊ฑธ์ด์ฃผ๋ฉด ๋๋ค. ์๋์ ๊ฐ์ด ์๋๋ฑ์ง์ ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ์๋ ๋๊ทธ๋ ๋ถ๋ถ๋ง ๋นจ๊ฐ๊ฒ ํํ๋๋ ๊ฑธ ๋ณผ ์ ์๋ค. 2020. 1. 7. [iOS/UI] ์ฝ๋๋ก width, height,x์ถ,y์ถ center ์ง์ ํ๊ธฐ(Autolayout Programatically) ์คํ ๋ฆฌ๋ณด๋์์์ ๋ง๊ณ ์ฝ๋๋ก ํน์ ๋ทฐ๋ฅผ ์ค์์ ๋ฐฐ์นํ๊ฑฐ๋ ๊ฐ๋ก,์ธ๋ก ํฌ๊ธฐ๋ฅผ ์ ํด์ฃผ๊ณ ์ถ์๋ค. ๋ฐฉ๋ฒ์ ์์ฃผ ๊ฐ๋จํ๋ค. ์ฐ์ ์คํ ๋ฆฌ๋ณด๋์์ ๊ฒ์ ๋ทฐ๋ฅผ ํ๋ ๋ง๋ค๊ณ ์๋ฌด contraints๋ฅผ ๊ฑธ์ด์ฃผ์ง ์์ผ๋ฉด ์คํ ๋ฆฌ๋ณด๋์์ ๋ง๋ค์๋ ๋ทฐ ๊ทธ๋๋ก ๋ชจ์์ด ์๋ฎฌ๋ ์ดํฐ ์์ ๋์จ๋ค. ๊ฐ์ฅ ํต์ฌ์ translatesAutoresizingMaskIntoConstarainsts๋ฅผ false๋ก ํด์ผ ์๋์ผ๋ก ๋ฆฌ์ฌ์ด์ง๋๋ ๊ฒ์ ๋ง์ ์ ์๋ค. ์ด ์ฝ๋๋ฅผ ๋ฃ์ด์ฃผ์ง ์์ผ๋ฉด ์๋ฌด๊ฒ๋ ์ ์ฉ์ด ์๋๋ค. //๋ทฐ๋ฅผ ์๋์ผ๋ก ๋ฆฌ์ฌ์ด์ง ํ์ง๋ง! BlackView.translatesAutoresizingMaskIntoConstraints = false //๊ฐ๋กํฌ๊ธฐ๋ฅผ 50 BlackView.widthAnchor.constraint(equalToCon.. 2020. 1. 6. [iOS/UI] ๊ฐ๋ก๋ชจ๋ ๋ง๊ธฐ(UIInterfaceOrientationMask.portrait) ๊ฐ๋ก๋ชจ๋๋ฅผ ๋ง๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ค. ์ฑ๋๋ฆฌ๊ฒ์ดํธ์ shouldSupporAllOrientation์ด๋ผ๋ ๋ณ์๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ supportedInterfaceOrientationFor ํจ์์ ๋ณ์๊ฐ true๋ฉด ๋ชจ๋ ๋ฐฉํฅ์ ๊ฐ๋ฅํ๊ฒ ํ๊ณ false๋ฉด ์ธ๋ก๋ชจ๋๋ง ๊ฐ๋ฅํ๊ฒ ํ๋ผ๋ผ๊ณ ์ค์ ํด์ค ๋ค ๊ฐ๋ก๋ชจ๋๋ฅผ ๋ง๊ณ ์ถ์ ๋ทฐ์ปจํธ๋กค๋ฌ์ AppDelegate๋ฅผ ๋์ ํ ์์๋ฅผ ๋ง๋ค์ฃผ๊ณ viewDidLoad()์ appdelegate์ ์๊น ๋ง๋ค์ด๋จ๋ ๋ณ์ shouldSupportAllOrientation๋ฅผ false๋ก ๋ฐ๊ฟ์ฃผ๋ฉด ๋๋ค. ์๋ ์ผ์ชฝ์ ๊ฐ๋ก๋ชจ๋๋ฅผ ๋ง๊ธฐ ์ ์ด๊ณ ์ค๋ฅธ์ชฝ์ ์ ์ฉํ ํ์ ๋ชจ์ต์ด๋ค. 2020. 1. 5. [iOS] ์ฒ์ ํ๋ฉด ๋ทฐ์ปจํธ๋กค๋ฌ๋ก ์ค์ ํ๊ธฐ(Set InstantiateViewController) ์ฑ ์คํ ์ ์ฒ์ ํ๋ฉด์ ์ํ๋ ๋ทฐ์ปจํธ๋กค๋ฌ๋ก ๋์ฐ๊ณ ์ถ์ ๋๊ฐ ์๋ค. ์๋์ ๊ฐ์ ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ํ๋ ๋ทฐ์ปจํธ๋กค๋ฌ๋ก ์์ํ๋ฉด์ ๋์ธ ์ ์๋ค. class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { var initialViewController: UIViewController? let mainStoryboard : UIStoryboard = UIStoryboard(nam.. 2020. 1. 4. [iOS] ์ฝ๋๋ก ์ํ๋ ๋ทฐ์ปจํธ๋กค๋ฌ ์ด๋ํ๊ธฐ(Programmatically transition UIViewController) ์คํ ๋ฆฌ๋ณด๋์์ด ์ด๋ค ๋ทฐ์ปจํธ๋กค๋ฌ์์ ๋ค๋ฅธ ๋ทฐ์ปจํธ๋กค๋ฌ๋ก ์ด๋ํ๊ณ ์ถ์๋ค. ๊ทธ๋์ ๊ตฌ๊ธ๋ง์ ํด์ ์ฐพ์๋ณธ ๊ฒฐ๊ณผ ์คํ ๋ฆฌ๋ณด๋์ ์์๋ทฐ์ปจํธ๋กค๋ฌ๋ฅผ Idenftifier๋ฅผ ์ด์ฉํด์ ๋ณด์ฌ์ค ์ ์์๋ค. //ํ์ฌ ์คํ ๋ฆฌ๋ณด๋์ ๋ทฐ์ปจํธ๋กค๋ฌ๋ฅผ StoryboardID๊ฐ "Arrive"์ธ ๋ทฐ์ปจํธ๋กค๋ฌ๋ฅผ ๋ณด์ฌ์ค let view = self.storyboard?.instantiateViewController(withIdentifier: "Arrive") //์ด๋ํ ๋ ํ๋ฉด coverVertical๋ก ๋ณด์ฌ์ค view?.modalTransitionStyle = UIModalTransitionStyle.coverVertical //view๋ฅผ ๋ณด์ฌ์ค! self.present(view!, animated: true, completion: nil) .. 2020. 1. 3. [iOS/UI] ํญ๋ฐ ๊ธธ์ด ์กฐ์ ๋ฐ ์์ดํ ์์น ๋ฐฐ์ด(UITabBar height & UITabBar item image insets) ์๋์ด๋ฏธ์ง๋ฅผ ๋ณด๋ฉด ๋ด ๊ธฐ์ค์์ ํญ๋ฐ ์์ดํ ๋ค์ด ์ด์ง ์๋ก ๊ฐ์๋ค. ๊ทธ๋์ ๋ด๋ฆด ์ ์๋ ๋ฐฉ๋ฒ์ ์ฐพ๋ค๊ฐ ์ ํ๋ฌธ์์์ ์๋ ํ๋กํผํฐ๋ฅผ ๋ฐ๊ฒฌํ๋ค. ์ด๋ฏธ์ง ์ธ์ ์ด๋ผ๋ ๊ฑด๋ฐ ๊ฐ ๊ผญ์ง์ ๋ค์ ์ง์ ํด ์์น๋ฅผ ์ฌ๋ฐฐ์ดํ ์ ์์๋ค. ์ฐ์ ์คํ ๋ฆฌ๋ณด๋์ ๋ทฐ์ปจํธ๋กค๋ฌ์ ํญ๋ฐ์์ดํ ์์น๊ฐ ์๋ ๋ถ๋ถ์ ํด๋ฆญํ๊ณ ์ธ์คํํฐ๋ฅผ ์ด๋ฉด 6๋ฒ์งธ size ์ธ์คํํฐ์ image inset์ด ์๋ค. ๋ชจ๋ 0์ผ๋ก ์ค์ ๋์ด ์๋ค. ๋ ์์ดํ ๋ค์ ๋ด๋ ค์ผํ๊ธฐ ๋๋ฌธ์ ๋ฐํ ์ -20๊ฐ์ ์ค๋ณด์๋ค. ๊ทธ๋ฌ๋๋ ์ ์๋ณด์ผ์๋ ์์ง๋ง ์๋๋ก ์ฝ๊ฐ ์ด๋ํ ๊ฒ์ ๋ณผ ์ ์๋ค! ๊ทธ๋ฆฌ๊ณ ๋ ์์ดํ ์ ๋ด๋ฆฌ๊ธฐ๋ณด๋จ ํญ๋ฐ ๋์ด๋ฅผ ์ค์ด๋ฉด ๋์ง ์์๊น? ๋ผ๋ ์๊ฐ์ ํญ๋ฐ ํค์ดํธ๋ฅผ ์กฐ์ ํ๋ ํจ์๋ฅผ ์ฐพ์๋ณธ ๊ฒฐ๊ณผ ์๋ ์ฝ๋๋ฅผ ์ฐพ๊ฒ ๋์๊ณ ์ฝ๊ฒ ์ํ๋ ๊ธธ์ด๋ฅผ ์ง์ ํ๋ฉด ๋ฐ๊ฟ ์ ์์๋ค. ex.. 2019. 12. 29. [iOS/UI] UICollectionView ์คํฌ๋กคํ๋ฉด ์์น๋ฐ ์จ๊ธฐ๊ธฐ ์ฝ๋ ์ ๋ทฐ๋ฅผ ์คํฌ๋กคํ๋ ๋ฒ์ ์์๋ด๋ ๊ฑด scrollViewDidScroll์ด๋ผ๋ ๋ฉ์๋๋ฅผ ์ฐ๋ฉด ์ ์ ์๋ค. //์ฝ๋ ์ ๋ทฐ์ ํ์ํด๋์ค๊ฐ ์คํฌ๋กค๋ทฐ์ด๊ธฐ ๋๋ฌธ์ ์ฝ๋ ์ ๋ทฐ ๋๋ฆฌ๊ฒ์ดํธ๊ฐ ์๋ค๋ฉด ์ด์ ๊ฐ์ ํจ์๋ฅผ ์ธ ์ ์๋ค. func scrollViewDidScroll(_ scrollView: UIScrollView) { let actualPosition = scrollView.panGestureRecognizer.translation(in: scrollView.superview) //์คํฌ๋กค ์๋์ธ์ง ์์ธ์ง ์์๋ด๋ ํฌ์ง์ if (actualPosition.y > 0){ // ์๋๋ก ๋ด๋ฆฐ ๊ฒ searchheight.constant = 38 //searchbarheight๋ฅผ 38๋ก ๋ฐ๊ฟ UIView.animate(.. 2019. 12. 26. [iOS/UI]UICollectionView header๋ง๋ค๊ธฐ(UICollectionReusableView) ์คํ ๋ฆฌ๋ณด๋์์ ํด๋น ์ฝ๋ ์ ๋ทฐ์ CollectionReusableView๋ฅผ ์ถ๊ฐํด์ค ๋ค UICollectionReusableView ํ์ผ์ ๋ฐ๋ก ๋ง๋ค์ด์ค๋ค. CollectionReusableView ํด๋์ค์ ์์ฑํด์ค ํ์ผ ์ด๋ฆ์ ์ ๊ณ identifier์ ์ด๋ฆ์ ๋ฐ๋ก ์์ฑํด์ค๋ค. ๊ทธ๋ฆฌ๊ณ ์ฝ๋ ์ ๋ทฐ๊ฐ ์๋ ํด๋์ค์ ์๋ ๋ฉ์๋๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ๋! func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView { //ofKind์ UICollectionView.elementKindSectionHea.. 2019. 12. 26. [iOS/UI] UIButton ์์๋ง ๋ฅ๊ธ๊ฒ ํ๊ธฐ //์ต์คํ ์ ์ ์ค์ ํด์ฃผ๊ณ extension UIButton { func roundedButton(){ clipsToBounds = true //๋ทฐ์ ํ ๋๋ฆฌ ๊ธฐ์ค์ผ๋ก ์งค๋ฆฌ๊ฒ ๋๋ค. layer.cornerRadius = 10 //์ผ๋งํผ ๋ฅ๊ธ๊ฒ layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner] //์ ์ผ ์ผ์ชฝ์์์ ์ ์ผ ์ค๋ฅธ์ชฝ ์๊น์ง ๋ฅ๊ธ๊ฒ // ์๋๋ ๋ฒํผ์ ๋ณด๋๋ฅผ ์ ํด์ฃผ๋๊ฒ // layer.borderWidth = 1 // layer.borderColor = UIColor(displayP3Red: 211/255, green: 211/255, blue: 211/255, alpha: 1).cgColor } } override func view.. 2019. 12. 26. [iOS/API] Google Places Autocomplete API(์ฃผ์ ์๋์์ฑ ๊ธฐ๋ฅ ์ด์ฉํ๊ธฐ) ๋จผ์ , ๊ตฌ๊ธ ํด๋ผ์ฐ๋ ํ๋ซํผ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํด์ค๋ค. ๊ทธ๋ฆฌ๊ณ ํ๋ก์ ํธ์์ ๋ฐ๋์ ๊ฒฐ์ ๊ณ์ ์ผ๋ก ๋ณ๊ฒฝํด์ฃผ์ด์ผ ํ๋ค. ์๊ทธ๋ฌ๋ฉด ๊ฒ์์ ํ์ ๋ ์๋ํ๋ฉด์ฒ๋ผ ๋ ๊ฒ์์ ์ ํํ๋ค. ๊ฒฐ์ ๊ณ์ ์ผ๋ก ๋ณ๊ฒฝํ๋ ๋ฒ ์ผ์ชฝ ์๋จ์ ํ๋ฒ๊ฑฐ๋ฒํผ์ ๋๋ฅด๊ณ ๊ฒฐ์ ๋ถ๋ถ์ ํด๋ฆญํ๋ฉด ์๋์ ๊ฐ์ ํ๋ฉด์ด ๋ฌ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฒฐ์ ๊ณ์ ์ฐ๊ฒฐ์ ํด์ค ๋ค ๋ค์ ํ๋ฒ๊ฑฐ๋ฒํผ์ ๋๋ฅด๊ณ API ๋ฐ ์๋น์ค์ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ๋ค์ด๊ฐ์ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด ๋ง๋ค๊ธฐ๋ฅผ ๋๋ฅด๊ณ API ํค๋ฅผ ๋ง๋ค์ด์ค๋ค. API ํค๋ ๋์ค์ ์ค์ ํ ๋ ์ฐ์ด๋ ์ ์ ์ด๋๋ค. ์ ๋ ๊ฒ ๋ ธ๋ ๋๋ํ ๋ชจ์์ด ๋จ๋ ๊ฑด ์ ํ ์ค์ ์ ํด์ฃผ๋ผ๋ ๋ป์ด๋ค. ๋ ธ๋์ ๋๋ํ๋ชจ์์ ํด๋ฆญํ๋ฉด ์ค์ ์์ ์ด ๋จ๋๋ฐ ๊ฑฐ๊ธธ ๋ค์ด๊ฐ์ iOS์ฑ , ์ฌ์ฉํ๊ณ ์๋ ๋ฒ๋ค ID, ํค ์ ํ ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉํ๊ณ ์๋ API (์ง๊ธ์ Pl.. 2019. 12. 19. [iOS] NotificationCenter ๋์์ ๋ค๋ฅธ ๋ทฐ์ปจํธ๋กค๋ฌ ๊ด๋ฆฌํ๊ธฐ ์ฝ๋๋ฅผ ์์ฑํ๋ค ๋ณด๋ฉด ํน์ ๋ทฐ์ปจํธ๋กค๋ฌ์์ ์ด๋ค ํ๋์ ํ์ ์ ๋์์ ๋ค๋ฅธ ๋ทฐ์ปจํธ๋กค๋ฌ๊ฐ ๋ณํํ๊ฒ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ฐ ์ด ๋ ์ ์ฉํ๊ฒ ๋ฐ๋ก NotificationCenter์ด๋ค. ๊ฐ์ ๋ณด๋ด์ผํ ํด๋์ค์์ ๋ ธํฐํผ์ผ์ด์ ์ด๋ฆ์ ์ ํด์ฃผ๊ณ NotificationCenter.default.post(name: NSNotification.Name("Notification"), object: nil) ๊ฐ์ ๋ฐ์์ผํ ํด๋์ค์ ์๋์ต์ ๋ฒ๋ฅผ ์ ์ด์ฃผ๊ณ ์ํ๋ ํจ์๋ฅผ ์คํ์ํฌ ์ ๋ ํฐ๋ฅผ ์ ์ด์ค ๋ค์ ๊ฐ์ ๋ณด๋๋ ๋ ธํฐํผ์ผ์ด์ ์ด๋ฆ์ ์ ์ด์ค๋ค, NotificationCenter.default.addObserver(self, selector: #selector(SearchExchangeTag.notifiactionFired(_:)).. 2019. 12. 14. [iOS/UI] UITableView ์์ฒด Height ์ค์ ํ๊ธฐ (NSLayoutConstraint) TableView์ Rowํ ๋ง๊ณ ๊ทธ ์์ฒด์ ๋์ด๋ฅผ ์ ํด์ผ ํ ๋๊ฐ ์๋ค. ๊ทธ๋์ ์ฐพ์๋ณธ ๊ฒฐ๊ณผ TableView Height๋ฅผ ๋ฐ๊พธ๋ ค๋ฉด Storyboard์์ height๋ฅผ ์ค์ ํด์ฃผ๊ณ ๊ทธ NSLayoutConstraint์ ํด๋น ๋ทฐ์ ์ฐ๊ฒฐํด์ฃผ๊ณ ๊ทธ ์์๋ ์์ .constant = ์ํ๋ ๊ฐ์ ํด์ฃผ๋ฉด ์ค์ ๋๋ค. 2019. 12. 12. ์ด์ 1 ยทยทยท 8 9 10 11 12 ๋ค์ 728x90 ๋ฐ์ํ