Kotlin Multiplatform/iOS: слой градиента не отображается в пользовательском UIViewIOS

Программируем под IOS
Ответить
Гость
 Kotlin Multiplatform/iOS: слой градиента не отображается в пользовательском UIView

Сообщение Гость »


Я пытаюсь добавить представление градиента к родительскому представлению, я создал подкласс UIView и внес изменения после этого подкласса UIView из Kotlin Native
Добавлен

Код: Выделить всё

uikit.def
file.

Код: Выделить всё

package = Custom_UIKit
language = Objective-C
---

#import 
#import 

@protocol UIViewWithOverrides
- (void) layoutSubviews;
@end
This is MyView class:

Код: Выделить всё

import Custom_UIKit.UIViewWithOverridesProtocol
import kotlinx.cinterop.\*
import platform.CoreGraphics.\*
import platform.UIKit.\*
import platform.UIKit.UIColor
import platform.QuartzCore.CAGradientLayer

class MyView() : UIView(frame = CGRectMake(.0, .0, 0.0, 0.0)), UIViewWithOverridesProtocol {

private val gradientLayer = CAGradientLayer()

init {
setupGradient()
}

private fun setupGradient() {
gradientLayer.colors = listOf(
UIColor.redColor.CGColor,
UIColor.blueColor.CGColor
)
gradientLayer.locations = listOf(0.0, 1.0)
println("setupGradient")
println(gradientLayer.frame.size)
layer.addSublayer(gradientLayer)
}

override fun layoutSubviews() {
println("layoutSubviews")
gradientLayer.frame = bounds
println(gradientLayer.frame.size)
}

}
And this is how i am adding MyView:

Код: Выделить всё

val view = MyView()
view.translatesAutoresizingMaskIntoConstraints = false
displayContainer.getAdContainer()!!.addSubview(view)
view!!.bottomAnchor.constraintEqualToAnchor(displayContainer.getAdContainer()!!.bottomAnchor).active = true
view!!.leadingAnchor.constraintEqualToAnchor(displayContainer.getAdContainer()!!.leadingAnchor).active = true
view!!.topAnchor.constraintEqualToAnchor(displayContainer.getAdContainer()!!.topAnchor).active = true
view!!.trailingAnchor.constraintEqualToAnchor(displayContainer.getAdContainer()!!.trailingAnchor).active = true
Please suggest a solution for adding a gradient layer to UIView in Kotlin Multiplatform or if something is wrong with this approach. Thank you!


Источник: https://stackoverflow.com/questions/761 ... tom-uiview
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»