Я пытаюсь добавить представление градиента к родительскому представлению, я создал подкласс UIView и внес изменения после этого подкласса UIView из Kotlin Native
Добавлен
Код: Выделить всё
uikit.defКод: Выделить всё
package = Custom_UIKit
language = Objective-C
---
#import
#import
@protocol UIViewWithOverrides
- (void) layoutSubviews;
@end
Код: Выделить всё
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)
}
}
Код: Выделить всё
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
Источник: https://stackoverflow.com/questions/761 ... tom-uiview
Мобильная версия