IOS가 lua에서 클래스 동적으로 생성

2172 단어 iosluawax
때때로 우리는 인코딩을 하는 과정에서 우리가 어떤 종류를 써야 할지 모른다.이런 녀석들이 뭘 하려는지 모르겠지만,
우리는 먼저 이런 종류를 만들어 쓸 수 있고,
oc에서 MyView 객체 초기화
wax_start("init.lua", nil);
    
    id tmpView = [[NSClassFromString(@"MyView") alloc] init];
    [self.view addSubview:tmpView];
    [tmpView release];

구체적인 실행 코드를 루아에 넣고 쓰면 로컬에 넣을 수도 있고 인터넷에서 동적 다운로드할 수도 있다.
MyView는 UIView를 상속합니다.
AddAlable 방법이 하나 있는데, 다음은 lua입니다.
waxClass{"MyView", UIView}
function init(self)
  self.super:init()
  self:setFrame(CGRect(0,0,200.0,200.0))
  self:setBackgroundColor(UIColor:redColor())
  print("
MyView init.
-------") return self end function addALable(self) local label = UILabel:initWithFrame(CGRect(0, 20, 100, 40)) label:setFont(UIFont:boldSystemFontOfSize(16)) label:setColor(UIColor:whiteColor()) label:setBackgroundColor(UIColor:colorWithRed_green_blue_alpha(0.173, 0.651, 0.627, 1)) label:setText("---- ----") label:setTextAlignment(UITextAlignmentCenter) self:addSubview(label) end

tmpView addalabel 호출 방법
    if (tmpView && [tmpView respondsToSelector:@selector(addALable)]) {
        objc_msgSend(tmpView, @selector(addALable));
    }

여러 매개변수가 있는 Lua 쓰기
function addALableWithTitle_color(self, aStr, aColor)
  local label = UILabel:initWithFrame(CGRect(0, 120, 100, 40))
  label:setFont(UIFont:boldSystemFontOfSize(16))
  label:setColor(UIColor:whiteColor())
  label:setBackgroundColor(aColor)
  label:setText(aStr)
  label:setTextAlignment(UITextAlignmentCenter)
  self:addSubview(label)
  print("
addALableWithFrame_title.
-------") end

oc에서 호출된 쓰기
    if (tmpView && [tmpView respondsToSelector:@selector(addALableWithTitle:color:)]) {
        objc_msgSend(tmpView, @selector(addALableWithTitle:color:), @"test", [UIColor blueColor]);
    }

dome 다운로드 주소
http://download.csdn.net/detail/uxyheaven/5988821
필요했어
ios에서 lua를 지원하는 클래스
https://github.com/probablycorey/wax

좋은 웹페이지 즐겨찾기