특정 조건에 따라 특정 클래스가 부여된 곳의 값(top, height…)을 바꿔보려고 하는데, 도큐먼트에서는 보이지가 않네요.
ID값으로 참조를 하려면 일일히 ID를 다 부여하고 변경해야 해서 클래스를 참조하려고 합니다.
혹시 불가능한건가요?
특정 조건에 따라 특정 클래스가 부여된 곳의 값(top, height…)을 바꿔보려고 하는데, 도큐먼트에서는 보이지가 않네요.
ID값으로 참조를 하려면 일일히 ID를 다 부여하고 변경해야 해서 클래스를 참조하려고 합니다.
혹시 불가능한건가요?
html의 css와는 다릅니다. style은 해당 컴포넌트에 적용하는 property 묶음일 뿜입니다.
(실제로 compile되면 전부 js코드랑 합쳐집니다. style파일이 style폴더에 남아있긴하지만 그것 역시 js로 변환되죠.)
스타일을 바꿨다고 해당 스타일이 적용된 모든 view가 바뀌지 않습니다.
그치만 addClass, removeClass등을 적절히 쓰면 짧은 코드로 적절하게 적용할 수 있습니다.
뭐 바뀌게 만들수도 있습니다만 그러면 화면에 보여지는 view를 다 찾아야하다보니 성능저하가 있을수 밖에 없겠죠.
앱 실행중에 스타일을 많이 바꾸시려는것 같은데 어떤경우인가요?
감사합니다.
바꾸려는 이유가 처음에 로드될때 dpi를 체크해서 메뉴 부분을 조금 다르게 보여주려고 합니다.
웹에서는 javascript에서 css에 정의된 class를 참조할수 있어서, titanium도 가능하지 않을까 싶었는데 컴파일이 되다보니 안되는군요…^^
적정한 수준에서 사용해야 될것 같네요…
항상 많은 도움 받고 있습니다… 감사합니다.
dpi에 따라 다르게 해주는 거라면 custom query를 이용하세요.
alloy.js
에서 Alloy.Globals
에 원하는 조건을 넣어 놓고
style에서 if 조건을 쓰면 됩니다.
아래 링크를 참조하세요.
위 링크에 나와있는 예시입니다.
// app/alloy.js
Alloy.Globals.isIos7Plus = (OS_IOS && parseInt(Ti.Platform.version.split(".")[0]) >= 7);
Alloy.Globals.iPhoneTall = (OS_IOS && Ti.Platform.osname == "iphone" && Ti.Platform.displayCaps.platformHeight == 568);
// app/styles/index.tss
// Default Styles
"#content" : {
color: 'gray',
top: '25dp',
left: '10dp',
font: {
fontSize: '12dp'
}
},
"#info" : {
color: 'gray',
bottom: '20dp',
font: {
fontSize: '9dp'
}
},
"#title" : {
color: 'black',
top: '15dp',
font: {
fontSize: '14dp',
fontWeight: 'bold'
}
},
"Window" : {
layout : 'vertical',
backgroundColor : 'white'
},
"ScrollView" : {
height : '415dp'
},
// Query styles
"#info[if=Alloy.Globals.isIos7Plus]" : {
font : { textStyle : Ti.UI.TEXT_STYLE_FOOTNOTE }
},
"#title[if=Alloy.Globals.isIos7Plus]" : {
top: '25dp', // compensate for the status bar on iOS 7
font : { textStyle : Ti.UI.TEXT_STYLE_HEADLINE }
},
"#content[if=Alloy.Globals.isIos7Plus]" : {
font : { textStyle : Ti.UI.TEXT_STYLE_CAPTION1 }
},
"ScrollView[if=Alloy.Globals.iPhoneTall]" : {
height : '500dp'
}
앱 다 만드시면 여기에도 한번 소개해주세요.^^
오…감사합니다.
저는 엄청 유용하게 쓸 수 있을것 같네요…
덕분에 해결이 될 것 같습니다…
앱 개발이 어느정도 되면 소개 한번 하겠습니다.^^
감사합니다.