이슈 textField 를 하나 만들어서 PlaceHolder 를 적용했고, 입력이 이루어지는 font 와 placeHolder 의 폰트를 다르게 하고 싶었으나 placeHolder.font 가 적용되지 않았다. 문제의 코드 let textField = UITextField() textField.attributedPlaceholder = NSAttributedString(text: "test Place Holder", color: .gray, font: .systemFont(ofSize: 20)) textField.font = .systemFont(ofSize:10) 원인 TextField 의 font 속성을 Developer site 에서 찾아보면 font 는 attributedText 와 attrib..
Realm 을 사용하기 위해 다음과 같은 모델을 정의했다. class ReviewModel: Object { @objc dynamic var id: Int = 0 @objc dynamic var text: String = "" override static func primaryKey() -> String? { return "id" } } 이렇게 사용하다가 Model 에 Field 를 한개 더 추가한 후, class ReviewModel: Object { @objc dynamic var id: Int = 0 @objc dynamic var text: String = "" @objc dynamic var rates: Double = 0.0 override static func primaryKey() -> S..
button.setTitle("test", for: .normal) button.setImage(UIImage.init(named: "icon"), for: .normal) 로 구성된 버튼이 있다면 button.setTitle("test", for: .normal) button.setImage(UIImage.init(named: "icon"), for: .normal) // top left bottom right 중에 조정할 간격 설정 // 보통 image - title 순으로 배치되므로 // image의 오른쪽 간격을 조정하면 됨 button.imageEdgeInsets = .init(top: 0, left: 0, bottom: 0, right: 0)
// Background func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) // ForeGround func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Vo..
Observable Rx 하면 떠오르는 가장 유명한 클래스 input data를 여러개 가질 수 있다. 데이터가 발행될 때 마다 onNext() 를 호출하며, 모든 데이터가 발행 된 후 onComplete() 를 호출하고 dispose() 한다.dd println("========== Observable test ==========") Observable.just("i", "am", "ywlee", "861009") .subscribe( { // onNext() println("onNext() = ${it}") }, { // onError() println("onError() ${it.localizedMessage}") }, { // onComplete() println("onCo..

Custom View 를 만들때, depth 를 한번더 늘리는 dummy layout 을 없애기 위해 필요한 태그 (xml depth 에 따라 랜더링 성능이 결정되기 때문에 뎁스가 늘어날 수록 성능면에서 치명적이라고 볼 수 있음.) 예시 아래와 같은 custom view 가 있다. cusom_button.xml 소스 CustomButton.kt 소스 package com.example.mergetest import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater import android.widget.LinearLayout class CustomButton @JvmOverloads cons..

Error constructor fragmentstatepageradapter(fragmentmanager)' is deprecated. deprecated in java ViewPager 를 FragmentPager 로 이용할 때 아래와 같은 경고 문구를 만날 수 있다. Why 생성자를 타고 들어가면 아래처럼 Deprecated 되었으니 FragmentPagerAdapter(FragmentManager, Int) 생성자를 이용하라고 나옴. /** * Constructor for {@link FragmentPagerAdapter} that sets the fragment manager for the adapter. * This is the equivalent of calling {@link #Fragme..
안드로이드는 기본적으로 달빅 가상머신이 JIT(Just in Time) 방식으로 컴파일을 했음 JIT 방식은 application 이 실행되는 순간 소스코드를 컴파일 하는 방식이기 때문에 실행속도 및 메모리 측면에서 많은 이슈가 있었음 이에 안드로이드 5.0 (롤리팝) 부터는 달빅을 버리고, AOT(Ahead of Time) 방식으로 컴파일을 하게 됨 AOT 방식은 application 이 설치되는 순간 소스코드를 컴파일 하여 준비시켜 놓는 방식으로 실행속도 및 메모리 측면에서 이점을 가져갈 수 있지만, 그만큼, 앱이 차지하는 용량에서 JIT 방식보다는 불리한 면이 있음. --- 안드로이드 N (누가) 부터는 AOT, JIT 방식을 혼합하여 이용하고 있음.
- Warning Msglambda argument should be moved out of parenthesesthis inspection detects a lambda expression inside parentheses which can be moved outside of them - Why가능하면 람다 표현식을 괄호 () 밖으로 내보내라는 뜻. - Solved아래와 같은 람다 식이 있다.예제의 표현식은 Date Picker 의 init 부분이며, init 에서 마지막 parameter 는 OnDateChangedListener 이다.mBinding.dpcResrvDate.init(2019, 11, 2, { view, year, monthOfYear, dayOfMonth -> Log.d("test"..
- Total
- Today
- Yesterday
- GIT
- Android
- php
- 앵커브리핑
- mysql
- Swift
- BBC 가쉽
- IOS
- node.js
- 손석희
- xcode
- 안드로이드
- 깃헙
- nodejs
- C언어
- git hub
- 리눅스
- linux
- 점유율
- Phaser
- 노드
- CentOS
- 스위프트
- C
- Kotlin
- Asterisk
- 배열
- 서버
- 뉴스룸
- Node
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 |
30 | 31 |