IOS가 lua에서 클래스 동적으로 생성
우리는 먼저 이런 종류를 만들어 쓸 수 있고,
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swift의 패스트 패스Objective-C를 대체하기 위해 만들어졌지만 Xcode는 Objective-C 런타임 라이브러리를 사용하기 때문에 Swift와 함께 C, C++ 및 Objective-C를 컴파일할 수 있습니다. Xcode는 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.