[关闭]
@chenbinghua 2017-02-09T10:35:13.000000Z 字数 851 阅读 1289

JSPatch修改某个UILabel或UIButton的文本

iOS笔记


OC代码

  1. - (void)viewWillAppear:(BOOL)animated{
  2. [super viewWillAppear:animated];
  3. [self findSubView:self.view];
  4. }
  5. // 遍历view的所有控件
  6. -(void)findSubView:(UIView*)view
  7. {
  8. for (UIView* subView in view.subviews)
  9. {
  10. if ([subView isKindOfClass:[UILabel class]]) {
  11. UILabel *label = (UILabel *)subView;
  12. if ([label.text isEqualToString:@"这是一个文本"]) {
  13. label.text = @"修改后的文本";
  14. }
  15. }
  16. [self findSubView:subView];
  17. }
  18. }

js代码

  1. defineClass("ViewController", {
  2. viewWillAppear: function(animated) {
  3. self.super().viewWillAppear(animated);
  4. self.findSubView(self.view());
  5. }
  6. }, {});
  7. require("UILabel");
  8. defineClass("ViewController", {
  9. findSubView: function(view) {
  10. var subviews = view.subviews().toJS();
  11. for (var i in view.subviews()) {
  12. var subview = subviews[i];
  13. if (subView.isKindOfClass(UILabel.class())) {
  14. var label = subView;
  15. if (label.text().isEqualToString("这是一个文本")) {
  16. label.setText("修改后的文本");
  17. }
  18. }
  19. self.findSubView(subView);
  20. }
  21. }
  22. }, {});
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注