Files
NativeScript/packages/core/ui/layouts/layout-base.ios.ts
farfromrefuge b7d02c9c86 perf: faster nativeView accessors (#10279)
`this.nativeViewProtected` is faster than `this.ios`

Co-authored-by: Nathan Walker <walkerrunpdx@gmail.com>
2023-05-01 14:56:13 -07:00

46 lines
1.1 KiB
TypeScript

import { LayoutBaseCommon, clipToBoundsProperty, isPassThroughParentEnabledProperty } from './layout-base-common';
import { View } from '../core/view';
export * from './layout-base-common';
export class LayoutBase extends LayoutBaseCommon {
nativeViewProtected: UIView;
public addChild(child: View): void {
super.addChild(child);
this.requestLayout();
}
public insertChild(child: View, atIndex: number): void {
super.insertChild(child, atIndex);
this.requestLayout();
}
public removeChild(child: View): void {
super.removeChild(child);
this.requestLayout();
}
_setNativeClipToBounds() {
if (this.clipToBounds) {
const view = this.nativeViewProtected;
if (view) {
view.clipsToBounds = true;
}
} else {
super._setNativeClipToBounds();
}
}
[clipToBoundsProperty.getDefault](): boolean {
return false;
}
[clipToBoundsProperty.setNative](value: boolean) {
this._setNativeClipToBounds();
}
[isPassThroughParentEnabledProperty.setNative](value: boolean) {
(<any>this.nativeViewProtected).setPassThroughParent(value);
}
}