제가 Kotlin으로 Swift의 사용자 정의 보기를 썼어요.
그 녀석?
이 자식이야.
• iOS 사용자 정의 보기
• Android 사용자 정의 뷰
좀 더 구체적으로.
구성 보기는 다음과 같습니다.
Swift/Kotlin으로 이걸 어떻게 쓰는지 해봐.
Warning
1. 코드의 양을 줄이고 스토리보드/XML 링크를 통해 이루어질 수 있는 처리를 정리한다.
2. 구조 함수의 사용 방법, 생명주기를 고려하면 부적절한 부분이 발생할 수 있으니 mm를 양해해 주십시오(지적하신 후 바로 수정해 주십시오)
3. 두 개의 사용자 정의 보기가 모두 기본 보기의 사용자 정의 보기라고 가정한다.
4. 그림의 배경색 지정과 Autolayout 지정 등 각종 할애.
환경
▼iOS
Xcode: ver8.3.3
Swift: ver3.1
▼Android
AndroidStudio: ver2.3
Kotlin: ver1.1.4
iOS 측
코드
사용자 정의 뷰
▼iOS
Xcode: ver8.3.3
Swift: ver3.1
▼Android
AndroidStudio: ver2.3
Kotlin: ver1.1.4
iOS 측
코드
사용자 정의 뷰
import UIKit
class CustomView: UIView {
// 画面内に文字を表示するラベルです。
@IBOutlet private weak var messageLabel: UILabel!
/// 初期化処理です。
func setup() {
messageLabel.text = "This is CustomView…"
}
}
ViewController
import UIKit
class ViewController: UIViewController {
// カスタムViewクラスの変数を用意
@IBOutlet private weak var selfView: CustomView!
override func viewDidLoad() {
super.viewDidLoad()
// カスタムViewの初期化処理呼び出し
selfView.setup()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Storyboard
(그림 1)ViewController에 UIVIew 클래스를 추가합니다.
↑ 그림 1
↑ 그림 2
↑ 그림 3
Android 측
코드 처리 전에
Kotlin에서 iOS의 IBOutlet처럼 ID 값으로 XML의 위젯을 지정하는 처리는 "kotlin-android-extension"을 추가해야 합니다.
※build.gradle 예(Module:app)입니다.
build.gradledependencies {
apply plugin: 'kotlin-android-extensions'
}
XML
(그림 4) ConstraintLayout에 LinearLayout을 배치합니다.
※ (vertical/horizontal이 있지만 이번에는 아무거나 가능)
dependencies {
apply plugin: 'kotlin-android-extensions'
}
↑ 그림 4
↑ 그림 5
코드
사용자 정의 뷰
/**
* Created by kamui_project on 2017/08/19.
*/
class CustomView: LinearLayout {
constructor(context: Context?) : super(context)
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
init {
LayoutInflater.from(context).inflate(R.layout.activity_main, this)
message_textview.text = "This is CustomView…"
}
}
Activity
class MainActivity : AppCompatActivity() {
// カスタムViewを遅延処理を用いて宣言します。
private val selfView by lazy { CustomView(this) }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// もともとXMLを読んでいた引数にカスタムビューを指定します
setContentView(selfView)
}
}
총결산
이것은 스위프트 애호가의 해변에서 알을 꼬는 모임. 당신을 방해하고 그곳에서 일하는 자율적인 과제입니다.
iOS 모임이지만 Android Studio를 설치하고 넥서스와 쳐다보고 있습니다. 무슨 스미슨인지.
하지만 비틀기 전에 바닷가에서 놀고, 바닷가의 집에서 밥을 먹고, 아름다운 바닷가를 볼 수 있는 방에서 코딩을 하는 환경은 정말 즐겁다.나는 비가 계속 내리는 2017년 여름에 좋은 추억을 쌓고 싶다.
(자세한 상황은 반드시 누군가가 너에게 상세하게 줄 것이라고 생각해서 확인한 후에 그 링크를 나중에 너에게 주고 싶다.)
여기서 마치겠습니다.
얘가 Github로 승진됐어요.
https://github.com/tony1224/CustomViewForSwift
https://github.com/tony1224/CustomViewForAndroid
Reference
이 문제에 관하여(제가 Kotlin으로 Swift의 사용자 정의 보기를 썼어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kamui_project/items/90bb2b769dad917ad9f9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)