1,一个Controller里边既有native控件,又有Weex生成的控件,怎么确定二者的位置,可以用AutoLayout吗?前提是weex控件里边的内容高度是不固定的, 不可以写死。
1,一个Controller里边既有native控件,又有Weex生成的控件,怎么确定二者的位置,可以用AutoLayout吗?前提是weex控件里边的内容高度是不固定的, 不可以写死。
其实所谓weex生成的控件归根结底还是通过native'实现的,比如div 其实就是一个UIViw,所以并没有什么差异。我没能理解你的意思,nantive controller怎么去加载weex的控件呢?如果是一个纯weex的页面那么你的意思就是扩展了一个native控件然后注册到weex中了,那么这个native控件中一定集成了weexSDK的一些东西,在这些方法中必然能拿到weex传递过来的属性,比如styles、attributes,在weex中绑定style或者class中有width、height属性,那么在你扩展的native控件中有写方法能拿到这些属性的,
ios中集成了WXComponent 之后在这个方法- (instancetype)initWithRef:(NSString )ref type:(NSString )type styles:(NSDictionary )styles attributes:(NSDictionary )attributes events:(NSArray )events weexInstance:(WXSDKInstance )weexInstance能拿到styles和attributues,打印这两个东西你会看到你想要的,然后你改变了css的style或者class:在-(void)updateStyles(NSDictionary *)styles中可以被检测到,也可以拿到的,在这个方法中就可以动态改变你的宽高了。
包括 一些生命周期方法,在这些生命周期方法中做你想做的事,比如改变frame。好好看看weex官方文档中ios扩展一栏---注册native组件和native components了,然后ios端WXComponents的源码好好看看,各种函数都是你想要的,
0.9.4 更新的 API
dom.getComponentRect
返回的结果可以拿到height
,或许可以解决你的问题.https://weex.apache.org/cn/re...