์.. ์์ฝํ์๋ฉด..^^
์คํฌ๋ฆฐ์ท(Ionic ๋ฒ ํ 1, iPhone 4):
#818์ ์ค๋ณต
๊ฐ์ฌ ํด์. ๋ฒ ํ2์ฉ ํค๋ณด๋ ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋ ๋จ์๊ฐ ์์ต๋๊น?
๋น์ ์ด beta2๋ฅผ ์ถ์ํ ๊ณํ์ด ์์ ๋์ฏค์ด๋ฉด ๋ด ์ฑ์ ์ด๋ฏธ ์ถ์๋์ด ์์ต๋๋ค ;-)
๋ค์์ ์ด ๋ฌธ์ ์ ์ค์ ๋ฐ๋ชจ์ ๋๋ค.
๋ฐฉ๊ธ "Ionic, v1.0.0-beta.1"์ ์ฌ์ฉํ์ฌ "์์ํ๊ธฐ" ํ๋ก์ธ์ค๋ฅผ ํตํด ์ด๊ฒ์ ํ ์คํธํ์ต๋๋ค.
๋ด ๋จ๊ณ:
๊ทธ๋ฐ ๋ค์ ๊ฐ๋จํ ์์์ผ๋ก ์์ํ๋๋ก app.js
์ ํธ์งํ์ต๋๋ค. :
<ion-view title="Form Test">
<ion-nav-buttons side="left">
<button menu-toggle="left" class="button button-icon icon ion-navicon"></button>
</ion-nav-buttons>
<ion-content class="has-header">
<div class="list">
<label class="item item-input">
<input type="text" placeholder="First Name">
</label>
<label class="item item-input">
<input type="text" placeholder="Middle Name">
</label>
<label class="item item-input">
<input type="text" placeholder="Last Name">
</label>
<label class="item item-input">
<input type="text" placeholder="Address 1">
</label>
<label class="item item-input">
<input type="text" placeholder="Address 2">
</label>
<label class="item item-input">
<input type="text" placeholder="City">
</label>
<label class="item item-input">
<input type="text" placeholder="State">
</label>
<label class="item item-input">
<input type="text" placeholder="Zip Code">
</label>
</div>
</ion-content>
</ion-view>
๊ทธ ๋ค์์:
๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ณด์๋ค์ํผ ํค๋ณด๋๋ ์์์ ์ํ ํ์์ค๋ก ๋ฐ์ด ์ฌ๋ฆฝ๋๋ค.
ํค์ด Justin, ๋ฌธ์ ๋
position: fixed
์์ต๋๋ค. ๋
ธ๋ ฅํ๋คposition:static
ํฉ๋๋ค. ์ฃ์กํฉ๋๋ค ์์ ์ ํธ์ํ์ง ์์์ต๋๋คํ ๋ฒ ์๋ํด ๋ณด๊ณ ๋์์ด ๋๋์ง ์๋ ค์ฃผ์ธ์.
2014๋ 4์ 2์ผ ์์์ผ ์คํ 4์ 34๋ถ, Justin Noel [email protected]์ด ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ์ต๋๋ค.
๋ค์์ ์ด ๋ฌธ์ ์ ์ค์ ๋ฐ๋ชจ์ ๋๋ค.
๋ฐฉ๊ธ "Ionic,
v1.0.0-๋ฒ ํ.1".๋ด ๋จ๊ณ:
- npm install -g ์ฝ๋ฅด๋๋ฐ ์ด์จ
- ์ด์จ ์์ statusBarTest ์ฌ์ด๋ ๋ฉ๋ด
- ionic ํ๋ซํผ ios ์ถ๊ฐ
๊ทธ๋ฐ ๋ค์ ๊ฐ๋จํ ํ์์ผ๋ก ์์ํ๋๋ก app.js๋ฅผ ํธ์งํ์ต๋๋ค. :
<div class="list"> <label class="item item-input"> <input type="text" placeholder="First Name"> </label> <label class="item item-input"> <input type="text" placeholder="Middle Name"> </label> <label class="item item-input"> <input type="text" placeholder="Last Name"> </label> <label class="item item-input"> <input type="text" placeholder="Address 1"> </label> <label class="item item-input"> <input type="text" placeholder="Address 2"> </label> <label class="item item-input"> <input type="text" placeholder="City"> </label> <label class="item item-input"> <input type="text" placeholder="State"> </label> <label class="item item-input"> <input type="text" placeholder="Zip Code"> </label> </div>
๊ทธ ๋ค์์:
- ์์ด์ค๋ ๋น๋ ios
- ์ด์จ ์๋ฎฌ๋ ์ดํธ ios
๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
[์ด๋ฏธ์ง: ์ํ ํ์์ค ๋ฌธ์ ] https://cloud.githubusercontent.com/assets/57374/2597008/fb174690-baad-11e3-80aa-c88985210bcb.gif
๋ณด์๋ค์ํผ ํค๋ณด๋๋ ์์์ ์ํ ํ์์ค๋ก ๋ฐ์ด ์ฌ๋ฆฝ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ Gi tHubhttps://github.com/driftyco/ionic/issues/932#issuecomment -39386769์์ ํ์ธํ์ธ์.
.
๋ถํํ๋, ๊ทธ๊ฒ์ ๋์์ด๋์ง ์์์ต๋๋ค. ์ํ ํ๋ก์ ํธ์์ ์ด๊ฒ์ "style.css"์ ์ถ๊ฐํ์ต๋๋ค.
body, .ionic-body {
position: static;
}
Ionic CSS ํ์ผ ๋ค์ "style.css"๊ฐ ํฌํจ๋์ด ์์ด๋ ์๋ํ์ง ์์์ต๋๋ค. ๋ํ Safari ๋๋ฒ๊ทธ์์ position: static
๊ฐ ๋ณธ๋ฌธ์ ์ ์ฉ๋ ๊ฒ์ ํ์ธํ์ต๋๋ค.
๊ทธ๋์ ์ด๋ ์์ด ๊ทธ๋ฅ ๋ชธ์ผ๋ก ํด๋ดค๋ค.
body {
position: static;
}
๋ค์์ผ๋ก "ionic.css" ํ์ผ์ ์ ๋ฐ์ดํธํ์ต๋๋ค. ์ด๊ฒ์ ์ฌ์ ํ โโ์๋ํ์ง ์์์ต๋๋ค.
๋ํ ํค๋๋ฅผ ์ ์ ์ผ๋ก ๋ง๋ค ์๋๊ฐ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๊ทธ๋์ ๋๋ ๊ทธ๊ฒ์ ์๋ํ๋ค. ๊ทธ๊ฒ๋ ์ด์ด ์์ต๋๋ค.
์, iOS 7.1 ์ ์ฉ์ด๋ผ๋ ๊ฒ์ ๋ณด์ง ๋ชปํ์ต๋๋ค. ์ง๊ธ์ Mac์ ์ก์ธ์คํ ์ ์์ผ๋ฏ๋ก ๋ด์ผ ๋จผ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ์กฐ์ฌํ๋ ๋ฐ ๋์์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์์ ๋ฐ๋ชจ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค Justin :+1:
.pane
๋ฐ .view
์๋ ์ ๋ ์์น๊ฐ ์์ผ๋ฏ๋ก ์ค์ ์ ๋ฐ๋ผ .body
๋ฅผ position:static
์ค์ ํด๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์ต๋๋ค.
๋ด๊ฐ ๊ตฌ์ถํ ์ฌ์ฉ์ ์ง์ ๋ชจ๋ฐ์ผ ์น ์ฑ์์ ํค๋๋ ์ด๋ฌํ ๋ฌด๊ฑฐ์ด ์์น ์์์ ์ธ๋ถ์ ์์ด์ผ ํ๊ณ ํค๋ ์์ฒด๋ ํค๋ณด๋๊ฐ ์ผ์ ธ ์์ ๋ ๊ฑฐ๊ธฐ์ ๋จธ๋ฌผ๋๋ก position:fixed
๋ก ์ค์ ๋์ด์ผ ํฉ๋๋ค. Android์๋ adjust-resize
๋ผ๋ ์ต์
์ด ์์ต๋๋ค. ์ด ์ต์
์ ํค๋ณด๋ ์์ ๋ง๋๋ก ๋ณด๊ธฐ๋ฅผ ์ฐ๊ทธ๋ฌ๋จ๋ฆฝ๋๋ค. ๋ฐ๋ฉด์ iOS๋ ํ๋ฉด์์ ์
๋ ฅ์ ์ค์์ ๋ฐฐ์นํ๊ธฐ ์ํด ๋ณด๊ธฐ๋ฅผ ์ด๋ํฉ๋๋ค.
Cordova์๋ ๊ธฐ๋ณธ๊ฐ์ด false์ธ "KeyboardShrinksView"๋ผ๋ ๊ธฐ๋ณธ ์ค์ ๋ ์์ต๋๋ค. ๋๋ ์์ง ์ด๊ฒ์ ๋ณด์ง ์์์ง๋ง Android๊ฐ ์ด๋ฏธ adjust-resize๋ก ์ํํ๋ ์์ ์ ๋ํ iOS์ฉ ์๋ฃจ์ ์ฒ๋ผ ๋ณด์ ๋๋ค.
์ด ๋ ๊ฐ์ง ์ฐจ์ด์ ์ฌ์ด์ ์กฐํ๋ฅผ ๋ง๋๋ ๊ฒ์ ์ผ์ ์ง์ฅ์ ๋๋ค.
์ด๋ฌํ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ํ์ฌ ํค๋ณด๋ ์์ ์์ ์ ํ๋ฐํ ์งํํ๊ณ ์์ต๋๋ค.
์ด ๋ฒ๊ทธ๋ ๋ถํํ๋ ์ผ๊ฐ 1717์์ ์์ ๋์ง ์์์ต๋๋ค.
@tlancina๊ฐ ์์์ฐจ๋ฆฐ ํ ๊ฐ์ง๋ ์ต์ ํญ ์์ ์ผ๋ก ์ ๋ ฅ์ ์ง์ ํด๋ฆญํด๋ ํค๋๊ฐ ์๋ก ์ด๋ํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๊ฐ ์ด ๋ฌธ์ ์ ์ผ๋ถ๋ฅผ ํด๊ฒฐํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ๋ ฅ์ ๋ํํ๋ ๋ ์ด๋ธ์ ํญํ๋ฉด 300ms ํ์ ์ถํ ๊ธฐ๋ณธ ์คํฌ๋กค์ด ์ํ๋ฉ๋๋ค. ๊ธฐ๋ณธ Ionic CSS๊ฐ ์๋ํ๋ ๋ฐฉ์์ ๋ํ ๋ ์ด๋ธ๊ณผ ์ค์ ์ ๋ ฅ ๊ฐ์ ์ฐจ์ด๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ํญ์ ์๋ํ์ง ์๋ ์ด์ ์ ์ผ๋ถ์ผ ์ ์์ต๋๋ค. ์ ๋ ์ด ํ ์คํธ ํ์ด์ง ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ์ฅ์น์์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๋๋ฒ๊ทธํ๋ ๋ฐ ๋์์ ๋ฐ์์ต๋๋ค.
์ง๊ธ ๋น์ฅ์ ๋ ์ด๋ธ ํด๋ฆญ ์ ๊ธฐ๋ณธ๊ฐ์ ๋ฐฉ์งํ์ง ์๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ ๋ ฅ์ ๋ํํ๋ ๋ ์ด๋ธ์์ e.preventDefault()๋ฅผ ์ํํ๋ฉด ์ฒซ ๋ฒ์งธ ํญ์์ ํค๋ณด๋๊ฐ ์๋์ผ๋ก ํ์ ๋์ง ์์ต๋๋ค. ์ด๊ฑด ์ข ๋ ์์๋ด์ผ๊ฒ ๋ค์ ๊ฐ์ฌํฉ๋๋ค.
@adamdbradley๋ ์ผ๊ฐ ํ๋์ ๋ค์ด๊ฐ ๋ ์ด ์์ ์ฌํญ์ ๋ํ ๋ค๋ฅธ ํ ์คํฐ๋ก ์์ํ์ต๋๋ค. ๊ณ ๋ง์.
๋ถํํ๋ ์ด ๋ฌธ์ ๋ 1.0.0 beta2์์ ์์ง ํด๊ฒฐ๋์ง ์์์ต๋๋ค.
@CoenWarmer ์ฐ๋ฆฌ๋ ๋ฌธ์ ๋ฅผ ์ธ์ํ๊ณ ์์ผ๋ฉฐ ์ฌ์ ํ ์์ ์ค์ ๋๋ค. ๋ํ ํค๋ณด๋ ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ํ ๋ ํ๋ซํผ, ํ๋ซํผ ๋ฒ์ , ๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ , ์๋ฎฌ๋ ์ดํฐ ๋๋ ์ฝ๋ฅด๋๋ฐ์ ๋ฌธ์ ์ธ์ง, ์ฝ๋ฅด๋๋ฐ์ ๊ฒฝ์ฐ ์ ์ฒด ํ๋ฉด์ธ์ง ์ฌ๋ถ๋ฅผ ์๋ ค์ฃผ์ญ์์ค. ๋ค๋ฅธ ์ ์ฉํ ์ ๋ณด์๋ ๋ ์ด๋ธ ๋๋ ์ ๋ ฅ๊ณผ ๊ฐ์ด ํญํ ์์, ์ ๋ ฅ์ ๋๋ฌํ๊ธฐ ์ํด ์ธ์ ๋ ์ง ์๋์ผ๋ก ์คํฌ๋กคํด์ผ ํ๋์ง, ๋ฉํ ๋ทฐํฌํธ์ height=device-height๊ฐ ์๋์ง ์ฌ๋ถ, ์์๊ฐ ๋ค์๊ณผ ๊ฐ์์ง ์ฌ๋ถ๊ฐ ํฌํจ๋ฉ๋๋ค. ๊ฐ์ ํค๋ณด๋๊ฐ ์ต์ข ์ ์ผ๋ก ํ์๋๋ ์์น ์๋์ ํค๋ณด๋๊ฐ ํ์๋๋ ์์น์ ์ ๋ฐ์ด ํ์๋๊ฑฐ๋ ์คํฌ๋กคํ ํ์๊ฐ ์๋ ์์ชฝ์ ํ์๋ฉ๋๋ค. ๊ฐ์ฌ ํด์
๋ค์์์ ๋ฐ์:
๋ํ 1.0.0 beta2๋ฅผ ์ฌ์ฉํ๋ Android 4.4 ๋ฐ 4.3์์๋ ๋ฐ์ํฉ๋๋ค. iOS7.1๊ณผ ๋๊ฐ์ ์ํฉ์ ๋๋ค. ๋ฐ๋ผ์ ์ ๋ ฅ ํ๋๊ฐ ํฌ์ปค์ค๋ฅผ ๋ฐ๊ณ ํค๋ณด๋๊ฐ ํ์ ๋๋ฉด ์๋ฌด ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ ๋ ฅ ํ๋์ ํฌ์ปค์ค๊ฐ ์๊ณ ์๊ฐ๋ฝ์ ์ ๋ ฅ ํ๋์ ๋๊ณ ์ ๋๋ ์๋๋ก ๋๋๊ทธํ๊ธฐ ์์ํ๋ฉด ๋ชจ๋ ์ฝํ ์ธ ๋ฅผ ๋ณด๊ธฐ ๋ฐ์ผ๋ก ์ด๋ํ ์ ์์ต๋๋ค. . ๋์ค์ ์คํฌ๋ฆฐ์บ์คํธ๋ฅผ ๋ง๋ค ์์ ์ ๋๋ค.
์คํฌ๋ฆฐ์บ์คํธ: https://www.dropbox.com/s/2g6b41n3s3vpj0s/2.mov
beta2 ์ดํ์ ์์ ํ๋ฉด(์: iphone3 ๋๋ iphone4)์์ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
@zelphir ์ด ๋ฌธ์ ๋ฅผ ์ฌํํ๋ codepen์ ์ ๊ณตํด ์ฃผ์๊ฒ ์ต๋๊น? ๋ ๋ค iOS 7.0์ ๋๊น, ์๋๋ฉด 7.1์ ๋๊น?
@CoenWarmer ๊ฐ ์ฐ์ฐํ ์ฝํ ์ธ ์์ญ ์ ์ ๋ ฅํ๊ฒ ๋์๋์ ? ๊ทํ์ ๋ฌธ์ ๋ฅผ ์ฌํํ ์ ์๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์คํฌ๋กค ๋ณด๊ธฐ์ ์๋ ์ ๋ ฅ์ ๊ฐ๋ ๊ฒ์ ๋๋ค.
๋ช ํํ ํ์๋ฉด ์คํฌ๋กค ๋ณด๊ธฐ๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ ์์๋๋ ๋์์ ๋๋ค. ํค๋ณด๋ ์๋์ ์ ๋ ฅ์ด ์๊ณ JS๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ์ ๋ ฅ์ผ๋ก ์คํฌ๋กคํ ์ ์๋ ๊ฒฝ์ฐ ๋ธ๋ผ์ฐ์ ๋ ๋ด์ฉ์ ๋ณผ ์ ์๋๋ก ๊ฐ์ ๋ก ์๋ก ์ด๋ํ๋ฏ๋ก ๋ชจ๋ ๊ฒ์ ์๋ก ์ด๋ํ ์ ์์ต๋๋ค.
@tlancina ๋ด ์ ๋ ฅ์ด ์ฝํ ์ธ ์์ญ ๋ด์ ์์ง ์์ต๋๋ค.
์ด๊ฒ์ ๋ด๊ฐ ์ฌ์ฉํ๋ ์ฝ๋์ ๋๋ค.
<ion-view title="Delegates">
<div class="search-container">
<div class="search-inner">
<input ng-model="searchText" placeholder="Search" ng-enter="ScrollTop()">
</div>
</div>
<ion-tabs class="tabs-icon-only tabs-double">
<ion-tab title="A-Z">
<ion-content class="slide-under-header has-header has-tabs has-double-tabs" padding="false" delegate-handle="DelegateScroll">
<!-- stuff -->
</ion-content>
</ion-tab>
<!-- another ion-tab -->
<ion-tabs>
</ion-view>
๋๋ ์ด๊ฒ์ด ์์๋๋ ํ๋์ด๋ผ๋ ๊ฒ์ ๋ํด ๋น์ ์ด ๋งํ๋ ๊ฒ์ ์์ ํ ๋ฐ๋ฅด๊ณ ์๋์ง ํ์ ํ์ง ๋ชปํฉ๋๋ค. ์ง๊ธ์ ๋ชจ๋ ๊ฒ์ด ํค๋ ์๋์์ ์คํฌ๋กค๋ ๋ ์ฑ์ด ์ค๋จ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. ๋์ ์ด์จ ํจ๋ ๋ด์ ์ ๋ ฅ ํ๋๋ฅผ ๋ฐฐ์นํด์ผ ํฉ๋๊น?
ํ์ด์ง ๋งจ ์๋์ ๋๋ฌํ๋ ์ฌ๋ฌ ์ ๋ ฅ ๋ชฉ๋ก์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. Javascript๋ฅผ ์ฌ์ฉํ์ฌ ์คํฌ๋กคํ ์ ์๋ ์์ญ ๋ด์ ์์ง ์์ ๊ฒฝ์ฐ ํค๋ณด๋๊ฐ ๋ํ๋ ๋ ์ด๋ป๊ฒ ํ์ํ ์ ์์ต๋๊น? ์ ์ผํ ๋ฐฉ๋ฒ์ ํค๋๋ฅผ ํฌํจํ ๋ชจ๋ ์ฝํ ์ธ ๋ฅผ ์ด๋ํ์ฌ ์๋ํ๋ ๊ธฐ๋ณธ ๋ธ๋ผ์ฐ์ ์คํฌ๋กค์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
์ ๋ ฅ ๋๋ ํฌ์ปค์ค ๊ฐ๋ฅ ์์ญ์ด ์ด์จ ์คํฌ๋กค ๋ณด๊ธฐ ๋ด์ ์๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ์คํฌ๋กค์ ๋ฐฉ์งํ๊ณ Javascript๋ฅผ ์ฌ์ฉํ์ฌ ํค๋๋ฅผ ์ ์๋ฆฌ์ ๋๊ณ ๋ณด๊ธฐ๋ก ๊ฐ์ ธ์ต๋๋ค.
๋ถํํ๋ ๋๋ UI ๋ผ์ฐํฐ ์ ๋ฌธ๊ฐ๊ฐ ์๋์ง๋ง ํ์ด์ง์ ๋ชจ๋ ์ฝํ ์ธ ์ฃผ์์ ์ด์จ ์ฝํ ์ธ ๋ฅผ ๋ฐฐ์นํ๊ณ ๋์์ด๋๋์ง ํ์ธํ์ญ์์ค.
์ด์ ์ดํดํ์ง๋ง ๋ค๋ก ๋ฒํผ์ ํฌํจํ์ฌ ์ ์ฒด ํ์ ๋ชจ์์ด ์ฌ๋ผ์ง๋ ๋ฐ๋์งํ์ง ์์ ์๊ฐ์ ํจ๊ณผ๋ก ์ด์ด์ง์ง ์์ต๋๊น?
๋ด ์ฌ์ฉ ์ฌ๋ก์ ์์ ์ ๋ํด ๋งํ์๋ฉด, ion-content ๋ด์ ์ ๋ ฅ ํ๋๋ฅผ ๋ฃ์ผ๋ฉด ์ ํ ์ ๋๋ฉ์ด์ ์ด iOS ๋ฐ Android์์ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋ ๋ฐฉ์์ผ๋ก ํค๋ ํ์์ค ์๋ ์๋จ์ ๊ณ ์ ๋ ์ํ๋ก ์ ์ง๋๋๋ก ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น?
์, ํญ์ ์ ๊ธ๋งํ๊ณ ์ ๋ ฅ์ ์ํด ์คํฌ๋กค ๊ฐ๋ฅํ ์์ญ์ ์ ์งํ๋ ์ํฉ์ ๊ฝค ๊น๋ค๋ก์ ๋ณด์ด๋ฉฐ ์๋นํ ์์ฃผ ๋ฐ์ํฉ๋๋ค. @adamdbradley ์ ์ ๋ ์ง๊ธ ๊ทธ๊ฒ์ ์กฐ์ฌํ๊ณ ์์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ ์์ ์ ์ํํ๋ ๊ฒฝ์ฐ ์ ํ ๋ฌธ์ ๋ฅผ ์ดํดํ๊ณ ์๋์ง ํ์คํ์ง ์์ต๋๋ค.
<ion-content>
<div class="search-container">
<div class="search-inner">
<input ng-model="searchText" placeholder="Search" ng-enter="ScrollTop()">
</div>
</div>
</ion-content>
์ ๋๋ฉ์ด์ ์ ๋ง์ณ๋๋์? ์ฝํ ์ธ ์์ญ์ด ํ๋๋ง ์์ผ๋ฉด ์ฝํ ์ธ ์์ญ์ด ์ฌ๋ฌ ๊ฐ ์์ผ๋ฉด ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
@tlancina ์ ์ข์, ํ๋์ ๋ถ๋ถ์ ๋ ๊ฐ์ ์ด์จ ํจ๋ ์์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ณ ๋ คํ์ง ์์์ต๋๋ค. ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ๋ณด๊ณ ๋ค์ ๋ณด๊ณ ํ ๊ฒ์ ๋๋ค.
๋ด๊ฐ ์ธ๊ธํ ์ ํ ์ ๋๋ฉ์ด์ ๋ฌธ์ ๋ ํน์ Android ๋ฒ์ ์์ ๋ฐ์ํฉ๋๋ค. ์์์์ position: static์ ์ฌ์ฉํ๊ณ ํด๋น ๋ณด๊ธฐ์์ ์ ํํ๋ฉด Android 4.1์์ 4.3์ผ๋ก(100% ํ์คํ์ง๋ ์์ง๋ง ํ์ธํ ๊ฒ์ ๋๋ค) ํด๋น ์์๋ ์ ๋๋ฉ์ด์ ์ด ์์๋๋ฉด ์ ๊ธด ์ํ๋ก ์ ์ง๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ์์(์ด์จ ์ฝํ ์ธ , ํญ, ํค๋ ๋ง๋ ๋ฑ)๋ ์ผ์ชฝ์ผ๋ก ์ด๋ํ๊ธฐ ์์ํ์ง๋ง position: static์ ์ง์ ํ ์์๋ ์ ๋๋ฉ์ด์ ์ด ์๋ฃ๋ ๋๊น์ง ๊ฐ์ ์์น์ ์ ์ง๋ฉ๋๋ค. ์ด๊ฒ์ iOS์์๋ ๋ฐ์ํ์ง ์์ต๋๋ค. ์ด๊ฒ์ด ๋ด๊ฐ ์ ์ ์์น๋ฅผ ์ด๋์์๋ ์ฌ์ฉํ๋ ๊ฒ์ ์ฃผ์ ํ ์ด์ ์ ๋๋ค.
@tlancina ๋ฐฉ๊ธ ์ ๋ ฅ ์์๋ฅผ ํ๋์ ์ด์จ ํจ๋์ ๋ฃ๊ณ ๋๋จธ์ง ๋ด์ฉ์ ๋ค๋ฅธ ๋ ๋ฒ์งธ ์ด์จ ํจ๋์ ๋ฃ์ผ๋ ค๊ณ ํ์ต๋๋ค. ๋ถํํ๋ ์ ๋ ฅ ์์์ ์ ๋ ฅ๋ ๋ชจ๋ ์ ๋ ฅ์ ์ด์ ๋ ์ด์ ๋ค๋ฅธ ์ด์จ ํจ๋์ ์๋ ng-repeat๋ฅผ ํํฐ๋งํ์ง ์์ต๋๋ค. ๋ค๋ฅธ ์ ์?
@CoenWarmer ion-content๊ฐ ์์ ๋ฒ์๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ ์ฝํ ์ธ ๋ชจ๋์ ์ปจํธ๋กค๋ฌ๋ฅผ ๋ฐฐ์นํด ๋ณด์ญ์์ค. ์ปจํธ๋กค๋ฌ๊ฐ ์๋ ๊ฒฝ์ฐ ์ ๋ ฅ์ ํ๋ฆฌ๋ฏธํฐ๋ธ๋ฅผ ์ฌ์ฉํ์ง ๋ง์ญ์์ค.
๋ฒ์ ์์์ '์ ' ๋ฌธ์ ๋ฅผ ๊ฒช๊ณ ์์ต๋๋ค. ๋ค๋ฅธ ์์ ๋ฒ์์ ๊ธฐ๋ณธ ์์๊ฐ ๋ถ๋ชจ ๋ฒ์๊ฐ ์๋ ์์ ๋ฒ์์ ์ค์ ๋๊ณ ์์ต๋๋ค. ๋ด๊ฐ ๋ญ๋ผ๋์ง ์ ๊ฒ ์ด? ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์์๋์ธ์. ๋งํฌ๋ฅผ ์ฐพ์/์ค๋ช ํ๊ฒ ์ต๋๋ค.
๋ถํํ๋ ๊ทธ๊ฒ์ ์ต์ํ์ง ์์ต๋๋ค. ๊ณต์ ํ์๊ฒ ์ต๋๊น? :)
์, ๋ค, ์ดํด๊ฐ ๋ฉ๋๋ค! ํ ๋ฒ ๋ ํด๋ณด๊ฒ ์ต๋๋ค :+1:
์๋ ํ์ธ์ @์๋ด์ ๋๋ค. ์ ๋ ฅ์ด ์๋ ๋ฐ๋ฅ๊ธ์ ์ด๋ป์ต๋๊น? ์คํฌ๋กค ์์ญ ๋ฐ์ ์๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๋ ๋ฐ์ํฉ๋๋ค. ์ด๋ค ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
iPad(7.1)์์๋ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ionic์ด ์ค์ ๋์ง ์์ ๊ฒฝ์ฐ ์ต๊ทผ ๋ณ๊ฒฝ ํ ๋ทฐํฌํธ์ height=device-height๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๋ณด์์ต๋๋ค.
์ด ์์ฑ ๋๋ฌธ์ ๋ทฐํฌํธ๊ฐ ์ฝ 200px(๋์ด)๋ก ์ปค์ง๊ณ ์์ ํ ์คํฌ๋กคํ ์ ์์ต๋๋ค.
๋ด๊ฐ ๊ทธ๊ฒ์ ์ ๊ฑฐํ๋ฉด ์๋ํฉ๋๋ค.
.view ๋ฐ .pane์ position: fixed๋ก ์ค์ ํ๊ณ body๋ฅผ position: static์ผ๋ก ์ค์ ํ๋ฉด ์ด๋ป๊ฒ๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ฉ์ธ ๋ทฐํฌํธ๋ ์ฌ์ ํ ํฌ๊ณ ์๊ฐ๋ฝ์ ์์๋๋ก ์์ง์ด๋ฉด ์ค๋ฅธ์ชฝ์ ์คํฌ๋กค๋ฐ๊ฐ ํ์๋ฉ๋๋ค.
๊ทธ๊ฑด ๊ทธ๋ ๊ณ ... ์ด๊ฒ์ ์ ๋ ฅ ์ด์ ๊ณผ ๋ ๋ฆฝ์ ์ ๋๋ค. ์ ๋ ฅ ํฌ์ปค์ค๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ ์๋๋ก ์คํฌ๋กค ์์น๋ง ์ด๋ํฉ๋๋ค.
์ฌ๋ฌ๋ถ, ํ์ฌ ์งํ ์ํฉ์ ์ด๋ป์ต๋๊น?
์ฌ์ฉ์ ์ ์ ionic ํ์ผ์ ๋ง๋ค๊ณ ์ถ๊ฐ 'height=device-height'๋ฅผ ์ ๊ฑฐํ์ต๋๋ค.
์ด ๋ณ๊ฒฝ ํ์๋ ๋ชจ๋ ๊ฒ์ด ์ ์๋ํฉ๋๋ค. ๋ ์ด์ CSS ์์ ์ด ํ์ํ์ง ์์ผ๋ฉฐ ์
๋ ฅ ํ๋ ํญ์ ๋ํ ์ด์ ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํฉ๋๋ค.
๋ํ iOS์์ ํค๋ณด๋ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ๋ค์์ ์ํํฉ๋๋ค.
Keyboard.shrinkView(true);
Keyboard.hideFormAccessoryBar(true);
๋ณ๋์ ์ด์จ ์ฝํ ์ธ ์ ์ ๋ ฅ์ ๋ฐฐ์นํด๋ ์ ๋ ฅ์ ํฌ์ปค์ค๊ฐ ์์ ๋ ํค๋ ํ์์ค์ ํฌํจํ์ฌ ์ ์ฒด ๋ณด๊ธฐ๋ฅผ ์น ๋ณด๊ธฐ ์๋์์ ์คํฌ๋กค ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ๋์์ด ์ค์ง๋์ง ์์ต๋๋ค. ์ด์ ์คํฌ๋ฆฐ์บ์คํธ์์์ ๋์ผํ ๋์์ด ๋ฐ์ํฉ๋๋ค: https://www.dropbox.com/s/2g6b41n3s3vpj0s/2.mov
@D3CK3R ์ฐ๋ฆฌ๋ ๋ชจ๋ ๋ค์ํ ๋ทฐํฌํธ ์๋๋ฆฌ์ค๋ฅผ ๋ฐ๋ก
@CoenWarmer Ionic Keyboard Plugin์ ์คํํด ์ฃผ์๊ฒ ์ต๋๊น? ๋ฐฉ๊ธ ๊ณต๊ฐํ์ผ๋ฉฐ ์คํฌ๋กค ๋ณด๊ธฐ ์ธ๋ถ์ ์ ๋ ฅ์์ ์ด๋ป๊ฒ ์๋ํ๋์ง ๊ถ๊ธํฉ๋๋ค.
Cordova ํ๋ก์ ํธ ๋ด๋ถ์์ cordova plugin add https://github.com/driftyco/ionic-plugins-keyboard.git
๋ฅผ ์คํํ์ฌ ์ค์นํ ์ ์์ต๋๋ค.
@tlancina ์๋ํฉ๋๋ค! ํ๋ฌ๊ทธ์ธ์ ์ถ๊ฐํ ํ ์ ๋ ฅ์ ํฌ์ปค์ค๊ฐ ์์ ๋ ์ฝํ ์ธ ๋ฅผ ๋ทฐํฌํธ ์๋๋ก ๋ ์ด์ ๋ ์ ์์ต๋๋ค. ์์ฒญ๋!!
ํ๋ฌ๊ทธ์ธ์ด ํ๋ก๋์ ์ค๋น๊ฐ ๋์์ต๋๊น? ์ด ํ๋ก์ ํธ๊ฐ ๋ฐฉ๊ธ ์คํ ์ด์ ๊ฒ์๋์์ผ๋ฏ๋ก ๊ฐ๋ฅํ ๋นจ๋ฆฌ ๋ฐฐํฌํ๊ณ ์ถ์ต๋๋ค.
@CoenWarmer ๋ง์ง๋ง ๋๊ธ์ ๋ณด๊ณ ์ผ๋ง๋ ๊ธฐ๋ปค๋์ง ๋ชจ๋ฆ ๋๋ค! ๋ฉ์ง ์ํ @tlancina!
@adamdbradley @tlancina
์!!!
@CoenWarmer iOS์ฉ ์, ํ๋ก๋์ ์ค๋น๊ฐ ๋์์ต๋๋ค. ๋ฐฉ๊ธ ์ฑ ์คํ ์ด์ ์น์ธ๋ ์ฑ์ ์ด์ ๋ฒ์ ์ด ์์ผ๋ฉฐ ์ถ๊ฐํ ์คํฌ๋กค ํญ๋ชฉ์ด ๊ฑฐ๋ถ ์ฌ์ ๊ฐ ๋์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋น์ ์ ์ํด ์ผํ๊ณ ์์ด ์ ๋ง ๊ธฐ์ฉ๋๋ค!
๋ซ๊ธฐ ์ข์? @tlancina
์ด๊ฒ์ beta14 ๋ฆด๋ฆฌ์ค์์ ์ฌ์ ํ ๋ฌธ์ ์์ต๋๋ค. ๊ด๋ฒ์ํ ๋๋ฒ๊น ํ์ ๋ง์นจ๋ด ์์ ์ฌํญ์ ์ฐพ์์ต๋๋ค.
์ ๊ฒฝ์ฐ์๋ meta viewport
์ ๊ด๋ จ์ด ์์์ต๋๋ค.
์๋ ๊ฐ(ํค๋๊ฐ ์ํ ํ์์ค ๋ค์ ํ์๋๋๋ก ํจ)
<meta name="viewport" content="width=device-width">
์๋ก์ด ๊ฐ์น(์ด ๋ฌธ์ ํด๊ฒฐ)
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
์ ๋ beta1
์ด์ ์ ํ๋ก์ ํธ๋ฅผ ์์ํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ์๋ง๋ ๋ด๊ฐ ๋์น์ฑ์ง ๋ชปํ ์ผ๋ถ ๋ ๊ฑฐ์ html์ด์์ ๊ฒ์
๋๋ค.
์ด๊ฒ์ด ๋๊ตฐ๊ฐ๋ฅผ ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
@rvanbaalen ๋ด ์์ธ ํ์ผ์ ์ ํํ ๋ฉํ ๋ทฐํฌํธ๊ฐ ์์ง๋ง ์ ๊ฒฝ์ฐ์๋ ์ ๋ ฅ ํ ์คํธ ์์์ ์ด์ ์ ๋ง์ถ๋ฉด ๋ณธ๋ฌธ์ด ์ํ ํ์์ค ์๋จ์ ์์นํ์ฌ ์ํ ํ์์ค์ด ์จ๊ฒจ์ง๋๋ค. ํค๋ณด๋๋ฅผ ์๋๋ก ๋ฐ์ด๋ ์ํ ํ์์ค์ด ์จ๊ฒจ์ ธ ์์ต๋๋ค.
์ด๊ฒ์ ์ฌ์ ํ โโ๋์๊ฒ ๋ฌธ์ ์ ๋๋ค. ํค๋ณด๋ ํ๋ฌ๊ทธ์ธ์ด ์ถ๊ฐ๋์์ต๋๋ค. ๊ฐ๋จํ ํ ์คํธ ์์ญ์ "๋ฉ๋ชจ์ฅ"์ผ๋ก ์ฌ์ฉํ์ฌ ๋์ด: 100% ์คํ์ผ๋ก ๋ณผ ์ ์๋ ๊ฒ์ฒ๋ผ ์ ์ฒด ํ๋ฉด์ ์ฑ์ฐ๋ ค๊ณ ํฉ๋๋ค. ์ด๋ฌํ ์คํ์ผ์ ์๋์ํค๋ ค๋ฉด ๋์ด ์คํ์ผ์ด ๋ถ๋ชจ์ ๋์ด๋ก๋ง ํ์ฅ๋๊ธฐ ๋๋ฌธ์ scroll="false"๋ก ์คํฌ๋กค์ ๋นํ์ฑํํด์ผ ํ์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํผํ๊ธฐ ์ํด ์ด "๋ฉ๋ชจ์ฅ"์ ๋ง๋๋ ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์ ์ ์์ผ๋ฉฐ ์ ์ํด ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
์๋์ ์คํฌ๋ฆฐ์ท์ ๋ ๋ช ํํ๊ฒ ๋ง๋ค๊ธฐ ์ํด ํ ์คํธ ์์ญ์ ๋ฐฐ๊ฒฝ์์ ์ถ๊ฐํ์ต๋๋ค.
์ด ๋ณด๊ธฐ๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
<ion-modal-view>
<ion-header-bar class="bar-royal">
<div class="buttons">
<button class="button button-clear" ng-click="vm.closeAddNote()">Cancel</button>
</div>
<h1 class="title">Add Note</h1>
<div class="buttons">
<button class="button button-clear" ng-click="vm.saveNote(vm.noteContent)">Done</button>
</div>
</ion-header-bar>
<ion-header-bar align-title="left" class="bar-subheader bar-stable">
<h3 class="title">adding note for `client name`</h3>
</ion-header-bar>
<ion-content class="has-subheader" scroll="false">
<div class="list padding" style="height: 100%;">
<textarea placeholder="Comments" style="height: 100%; width: 100%;" ng-model="vm.noteContent"></textarea>
</div>
</ion-content>
</ion-modal-view>
์ด๊ธฐ ๋ณด๊ธฐ
ํ
์คํธ ์์ญ์ ํด๋ฆญํ ํ
ํ
์คํธ ์์ญ์ ํฌ์ปค์ค๊ฐ ์๋ ๋์ ์คํฌ๋กคํ ์ ์์์ ๋ณด์ฌ์ค๋๋ค.
์ฌ์ ํ ๋ฌธ์ ์ ๋๋ค. @ajoslin @adamdbradley ๋ฅผ ๋์ ์ฃผ์ธ์ .
iOS ์๋ฎฌ๋ ์ดํฐ - iPhone 6 / iOS 8.3
์ด์จ ๋ฒ์ 1.0.0-rc.0
์ค์น๋ ํ๋ฌ๊ทธ์ธ:
๋ชจ๋ฌ์ HTML:
<ion-modal-view>
<ion-header-bar>
<div class="buttons">
<ion-button class="button button-clear" ng-click="closeModal()">Cancel</ion-button>
</div>
<h1 class="title">Modal View</h1>
<div class="buttons">
<ion-button class="button button-clear" ng-click="create()">Create</ion-button>
</div>
</ion-header-bar>
<ion-content>
<form>
...
</form>
</ion-content>
</ion-modal-view>
@ravivit9 @mikehaas763 @AshleyRudland
๋น์ ์ ์๋ํด์ผํฉ๋๋ค
iOS Notes
If the content of your app (including the header) is being pushed up and out of view on input focus,
try setting cordova.plugins.Keyboard.disableScroll(true).
This does not disable scrolling in the Ionic scroll view,
rather it disables the native overflow scrolling that happens automatically as a result of focusing on inputs below the keyboard.
๊ทธ๊ฒ์ ๋งค๋ ฅ์ฒ๋ผ ์๋ํฉ๋๋ค.
Cordova.plugins.Keyboard.disableScroll(true)์ ์ค์ ํ๊ณ ๋ทฐ๊ฐ ๋ด ์
๋ ฅ์ผ๋ก ์คํฌ๋กค๋ ๊ฒ์ผ๋ก ์์ํ ์ ์์ต๋๊น?
์คํฌ๋กค์ ๋นํ์ฑํํ๋ฉด ์ํ ํ์์ค์ด ๋ ์ด์ ํธ์๋์ง ์์ง๋ง ํค๋ณด๋๊ฐ ๋ด ์
๋ ฅ ํ๋์ ๊ฒน์นฉ๋๋ค.
@michaelknoch ์
๋ ฅ์ด ์คํฌ๋กค ๋ณด๊ธฐ(ion-content์ ๊ฐ์) ๋ด์ ์๋ ํ ionic.keyboard.disable()
ํธ์ถํ์ง ์๋ ํ ์๋์ผ๋ก ๋ณด๊ธฐ๋ก ์คํฌ๋กค๋์ด์ผ ํฉ๋๋ค.
@michaelknoch ํค๋ณด๋ ์ฐ๊ฒฐ์ ์์ฒญํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
@LightZam ํ์ง๋ง ion-footer ๋ง๋๋ง ์ง์ํ๊ณ ๋ด ์ ๋ ฅ์ ion-view์ ๋ด ์ฝํ ์ธ ๋ด๋ถ์ ์์ต๋๋ค.
@tlancina ๋ด ์ฝํ ์ธ ๋ฅผ ionScroll๋ก ๊ฐ์ธ์ผ ํ๋์? http://ionicframework.com/docs/api/directive/ionScroll/
@michaelknoch ion-content
์๋ ์ด๋ฏธ ์คํฌ๋กค ๋ณด๊ธฐ๊ฐ ์์ผ๋ฏ๋ก ๊ทธ๋ด ํ์๊ฐ ์์ต๋๋ค. ์ฌ์ฉ ์ค์ธ ์ ํ ๋ฐ OS์ ํจ๊ป ๋ฌธ์ ๋ฅผ ์ฌํํ๋ ๊ฐ๋จํ ์ฝ๋ํ์ ๋ง๋ค ์ ์๊ณ ionic info
๋ช
๋ น์ ์ถ๋ ฅ(CLI๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ) ๋ด.
@tlancina ์ด ๋ฌธ์ ์ ์ง๋ฉดํด ์์ต๋๋ค.
์ฝ๋ฅด๋๋ฐ CLI: 5.2.0
์ด์จ ๋ฒ์ : 1.1.0
Ionic CLI ๋ฒ์ : 1.6.4
Ionic ์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ : 0.3.8
iOS ๋ฐฐํฌ ๋ฒ์ : 1.7.0
ios-sim ๋ฒ์ : 4.1.1
OS: ๋งฅ OS X ์์ธ๋ฏธํฐ
๋
ธ๋ ๋ฒ์ : v0.12.7
Xcode ๋ฒ์ : Xcode 7.0 ๋น๋ ๋ฒ์ 7A176x
์ ํ - โโ์์ดํฐ 4S, iOS 7.0.6
"cordova.plugins.Keyboard.disableScroll(true)" ํค๋๋ฅผ ์ ์งํ๋ฉด ๋ฐ์ด๋ด์ง ์์ง๋ง ํค๋ณด๋๋ ๋ด ํ
์คํธ ์์ญ ์์ ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ ํ
์คํธ ์์ญ(msd-elastic๊ณผ ํจ๊ป ์ฌ์ฉ)์ ๋ด๋ถ์ ๋ณด๊ดํ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ keyboard-attach๋ฅผ ์ฌ์ฉํ๋ฉด msd-elastic์ผ๋ก ๋ง๊ฐ์ง๋๋ค :(
์ด๋ค ์ ์?
ionic.Platform.fullScreen()์ผ๋ก ์๋
๊ทธ๋ฌ๋ ์ด์ด ์์ต๋๋ค ... ๋ํ์ด fullScreen()์ ios์์ ๋ ๋ค๋ฅธ ๋ฌธ์ ๋ฅผ ์์ฑํฉ๋๋ค ...
์ด CSS๋ fullscreen()์ ํธ์ถํ ๋ ์ ์ฉ๋์ง ์๊ธฐ ๋๋ฌธ์ ํค๋์ ๋์ด๋ฅผ ์ค์
๋๋ค.
.platform-ios.platform-cordova :not (.fullscreen) .bar- header:not (.bar-subheader) {๋์ด: 64px; }
evrything์ andorid์์ ๊ด์ฐฎ ์์ต๋๋ค.
Cordova๋ฅผ 6.0.0์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ ํ์๋ ๊ฑฐ์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ฆ, ์์ ํ๋์ ํฌ์ปค์ค๊ฐ ์์ ๋ ์ํ ํ์์ค์ด ๋ํ๋๊ณ ๋จธ๋ฆฌ๊ธ ํ์์ค๊ณผ ๊ฒน์นฉ๋๋ค. ์ด ๋ฌธ์ ๋ ๋ด Android ๊ธฐ๊ธฐ์ ์์ต๋๋ค. iOS ๊ธฐ๊ธฐ๋ ์์ง ์ฌ์ฉํด๋ณด์ง ์์์ต๋๋ค. ๋๊ตฌ๋ ์ง pls๋ฅผ ๋์ธ ์ ์์ต๋๊น?
์ฝ๋ฅด๋๋ฐ CLI: 6.0.0
Gulp ๋ฒ์ : CLI ๋ฒ์ 3.8.11
Gulp ๋ก์ปฌ: ๋ก์ปฌ ๋ฒ์ 3.8.11
์ด์จ ๋ฒ์ : 1.0.0-rc.5
Ionic CLI ๋ฒ์ : 1.7.14
Ionic ์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ : 0.7.0
iOS ๋ฐฐํฌ ๋ฒ์ : 1.8.3
ios-sim ๋ฒ์ : 5.0.4
OS: ๋งฅ OS X ์ ์บํผํ
๋
ธ๋ ๋ฒ์ : v0.12.2
Xcode ๋ฒ์ : Xcode 7.2 ๋น๋ ๋ฒ์ 7C68
Cordova 6.0.0์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ ํ Android์์ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ผ๋ฉฐ ํ๋ฌ๊ทธ์ธ https://github.com/mesmotronic/cordova-plugin-fullscreen ์ AndroidFullScreen.immersiveMode ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ํด๊ฒฐํ์ต๋๋ค.
// ์์คํ
UI๋ฅผ ์จ๊ธฐ๊ณ ์จ๊ธด ์ํ๋ก ์ ์ง(Android 4.4 ์ด์๋ง ํด๋น)
AndroidFullScreen.immersiveMode(successFunction, errorFunction);
์ด ๋ฌธ์ ๋ ์ฌ์ ํ ๋ฐ์ํ๊ณ ์์ต๋๋ค. ์ฑ์ด ์ค์ ๋ก ์ ์ฒด ํ๋ฉด์์ ์คํ๋์ด์๋ ์ ๋๋ฏ๋ก ์ ์ฒด ํ๋ฉด์ผ๋ก ์ด๋ํ์ฌ ํด๊ฒฐํ๋ ๊ฒ์ ์ ์ ํ ์๋ฃจ์
์ด ์๋๋๋ค. ๊ทธ๋ฌ๋ ํ
์คํธ๋ฅผ ์ํด ์๋ํ ๊ฒฐ๊ณผ ์ฑ์ด ์ ์ฒด ํ๋ฉด ๋ชจ๋๋ก ์ ํ๋๋ ๋์์๋ ์ฌ์ ํ ํ๋ฉด๋ณด๋ค "๋ ํฌ"๋ฏ๋ก ์ํ ํ์์ค ์๋์ ์๋ ํค๋๋ก ์ฝ๊ฐ ์คํฌ๋กคํ ์ ์์ต๋๋ค.
๋์์ฃผ์ธ์!
์ด ๋ฌธ์ ๊ฐ ์์ต๋๊น? ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
Ionic 2์ iOS์์๋ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
ํ๊ฒฝ
์ฝ๋ฅด๋๋ฐ CLI: 6.0.0
์ด์จ ๋ฒ์ : 2.0.0-beta.3
Ionic CLI ๋ฒ์ : 2.0.0-beta.19
Ionic ์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ : 2.0.0-beta.9
ios-deploy ๋ฒ์ : ์ค์น๋์ง ์์
ios-sim ๋ฒ์ : 5.0.6
OS: ๋งฅ OS X ์ ์บํผํ
๋
ธ๋ ๋ฒ์ : v5.7.1
Xcode ๋ฒ์ : Xcode 7.2.1 ๋น๋ ๋ฒ์ 7C1002
๋ณด์๋ค์ํผ Ionic ์ฑ์ ์ํ ํ์์ค๊ณผ ํค๋ ์ฌ์ด์๋ ๊ณต๊ฐ/ํจ๋ฉ์ด ์์ต๋๋ค.
ํค๋ณด๋์ ์/๊ธฐ์กด ๋ฌธ์ ๊ฐ ๋ค์ ๋ํ๋ฉ๋๋ค. ํ ์ดํ์ผ๋ก ์ ๋ ฅ์ ์ด์ ์ ๋ง์ถ ๋ ์คํฌ๋กค์ ๋นํ์ฑํํ ์ ์์ง๋ง ๊ฐ์ ํค๋ณด๋ ํน์ ๋ฒํผ์ผ๋ก ์์ ํ๋์ ์ด์ ์ ๋ง์ถ๋ฉด ํค๋๊ฐ ์คํฌ๋กค๋์ง ์๋ ์ด์ ๋ฌธ์ ๊ฐ ๋ค์ ๋ํ๋ฉ๋๋ค. Android ํค๋ณด๋์ ์ค๋ฅธ์ชฝ ํ๋จ์๋ ์์์ ๋ค์ ์ ๋ ฅ์ผ๋ก ์ ํํ ์ ์๋ ๋ น์ ๋ฒํผ์ด ์์ต๋๋ค. ์คํฌ๋กค์ ๋ ๊ฒฝ์ฐ์๋ ๋ฒํผ์ ๋ทฐ๋ฅผ ์คํฌ๋กคํ์ฌ ์ด์ ์ด ๋ง์ถฐ์ง ์ ๋ ฅ์ ํ์ํ๊ณ ๊ฒฐ๊ณผ์ ์ผ๋ก ํค๋๊ฐ ํ๋ฉด์์ ๋ฒ์ด๋ฉ๋๋ค.
์ด๋ฅผ ํ ์คํธํ๋ ค๋ฉด ์ฒซ ๋ฒ์งธ ์ ๋ ฅ์ด ๋ทฐ์ ์์ด์ผ ํ๊ณ ํค๋ณด๋๊ฐ ๋ณด์ด๋ ํฌ์ปค์ค๊ฐ ์์ด์ผ ํ๊ณ ๋ ๋ฒ์งธ ์ ๋ ฅ์ ์ ํ ๋ถ๋ถ ์๋(ํค๋ณด๋ ์๋ ์ด๋๊ฐ)์ ์์ด์ผ ํฉ๋๋ค. ์ด์ ๋ น์ ๋ฒํผ(๊ทธ๋ฆผ๊ณผ ๊ฐ์ด)์ ํญํ๋ฉด ๋ณด๊ธฐ๊ฐ ์คํฌ๋กค๋๊ณ ํค๋๊ฐ ํ๋ฉด์์ ์ฌ๋ผ์ง๋๋ค.
์ฝ๋ฅด๋๋ฐ 6.3.0
์ด์จ ํ๋ฌ๊ทธ์ธ ํค๋ณด๋ 2.2.1
Android 5๊ฐ ์ค์น๋ ๊ธฐ๊ธฐ์์ ํ
์คํธ๋จ
Android 24.0.1์ฉ ๋น๋
์ด ๋ฒํผ์ ๋๊ฑฐ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์์ด๋์ด๊ฐ ์์ต๋๊น? 100% ํ์ ํ ์๋ ์์ง๋ง ์ด๊ฒ์ด ์ฝ๋ฅด๋๋ฐ๋ฅผ 6+ ๋ฒ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ ํ์ ์์๋ ๊ฒ์ผ๋ก ์๊ฐ๋ฉ๋๋ค.
@rafaellop ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ จ์ต๋๊น?
iOS์์ ์ ํ/์นด๋ฉ๋ผ ํ๋ฉด์์ ํ์ผ ์ ๋ก๋๊ฐ ์ด๋ฆด ๋ ์ด ๋ฌธ์ ๊ฐ ๋ํ๋ฉ๋๋ค.
์ด๋ฉ์ผ ์์ฑ๊ธฐ์ ์ด ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
ํธ์ง ๋ชจ๋ ๊ฒ์ ์๋ํ ํ์๋ ์ฌ์ ํ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ [email protected] ๋ก ๋๋๋ ค ๋ณด์ญ์์ค
์ด ๋ฌธ์ ๋ ์ฌ์ ํ ๋์๊ฒ๋ ๋ฐ์ํ๋ฉฐ ํด๊ฒฐ๋์ง ์์์ต๋๋ค.
IOS์์ ์ํ ํ์์ค์ ํญํ๋ฉด IONIC2์์ ์ ์ฒด ์ด์จ ํจ๋์ด ๊น๋ฐ์
๋๋ค.์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์
๋๋ค.์ ์ํ์ญ์์ค..
๊ฐ์ฌ ํด์.
[email protected]๋ก ๋๋๋ฆฌ๋ ๊ฒ์ ๋์ง ๋ชปํ์ต๋๋ค. ๊ธฐ๋ณธ ์นด๋ฉ๋ผ ํ์ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ํ์๋ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋ค๋ฅธ ๊ฒ์๋ฌผ์์ ๋ฐฉ๊ธ 2.2.1์์ 2.2.0์ผ๋ก cordova-statusbar ํ๋ฌ๊ทธ์ธ์ ๋ค์ด๊ทธ๋ ์ด๋ํ ์ ์์๊ณ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์์ ๊นจ๋ฌ์์ต๋๋ค. ์ ๊ฒฝ์ฐ์๋ ์ํ ํ์์ค ํ๋ฌ๊ทธ์ธ์ด ๋ฌธ์ ๋ฅผ ์ผ์ผํจ ๊ฒ ๊ฐ์ต๋๋ค.
๋๋์ด ๋ฌธ์ ๊ฐ ์์๋ค
height: 100%;
(์ด๊ฒ์ ๋ชจ๋ ์ด์จ ํจ๋์)๊ฐ ์๋ ํ
์คํธ ์์ญ์ด ์์๊ณ ์ด์จ ํค๋๋ ํ
์คํธ ์์ญ์ ์ด์ ์ด ๋ง์ถฐ์ง ๋๋ง๋ค ์์ผ์์ ์ถ์๋ฉ๋๋ค. ๋ด ์์ ์ height: auto; min-height: 25%;
๋ก ๋ณ๊ฒฝํ๊ณ height: 100%; margin: 0; padding: 0;
๋ฐ (click)=focusTextArea()
์๋ div ์์ ํ
์คํธ ์์ญ์ ๋ฃ๋ ๊ฒ์
๋๋ค. ์ฝ๊ฐ ๋ฒ๋ฒ
๊ฑฐ๋ฆฌ๊ณ ๋ ๋์ ์๋ฃจ์
์ ์ํ์ง๋ง ์ง๊ธ์ ๊ด์ฐฎ์ต๋๋ค. +1:
์ด ํ๋ฌ๊ทธ์ธ ionic cordova ํ๋ฌ๊ทธ์ธ add cordova-plugin-ionic-webview --save๋ฅผ ์ฌ์ฉํ์ญ์์ค. ๋๋ถ์ ๋ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
๋๋ ์ด๋ฉ์ผ ์์ฑ๊ธฐ ํ๋ฌ๊ทธ์ธ๊ณผ ํจ๊ป ๋์ผํ ๋ฌธ์ ๋ฅผ ๊ฒฝํํ์ต๋๋ค.
cordova-plugin-statusbar๋ฅผ ๋ฒ์ 2.2.1์์ 2.3.0์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
@jvhe123 ๋ฐฉ๊ธ ํด๋ดค๋๋ฐ v2.3.0์ด ์กด์ฌํ์ง ์๋ ๊ฒ ๊ฐ์๋ฐ์, v2.2.3์ ๋ง์ํ์๋ ๊ฑด๊ฐ์?
@glenr4
iPhone X์์ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ํค๋ณด๋๋ฅผ ์ด๋ฉด ๋จธ๋ฆฌ๊ธ์ด ์๋ก ์ฌ๋ผ์ ๊ฑฐ์ ํ์ด์ง์์ ๋ฒ์ด๋ฌ์ต๋๋ค.
์ํฅ์ ๋ฐ๋ ํ์ด์ง์ JavaScript ํ์ผ์ eventListener๋ฅผ ๋ฃ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
document.addEventListener('deviceready', function(e){
window.addEventListener('native.keyboardshow', function () {
cordova.plugins.Keyboard.disableScroll(true);
});
});
์ด๊ฒ์ ์ ์๊ฒ ํจ๊ณผ๊ฐ ์์๊ณ , ์ฌ๋ฌ๋ถ ์ค ํ ๋ช ์๊ฒ๋ ํจ๊ณผ๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋ฌธ์ ๋ฅผ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ์ด ๋ฌธ์ ๋ ์๋ ๋ฌธ์ ์ ๊ด๋ จ์ด ์๋ ๋๊ธ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ ๊ฒจ ์์ต๋๋ค. ์ด๊ฒ์ด ์ฌ์ ํ ์ต์ ๋ฒ์ ์ Ionic์์ ๋ฌธ์ ๊ฐ ๋๋ ๊ฒฝ์ฐ ์ ๋ฌธ์ ๋ฅผ ๋ง๋ค๊ณ ํ ํ๋ฆฟ์ด ์์ ํ ์ฑ์์ก๋์ง ํ์ธํ์ญ์์ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
iOS์์ ์ ํ/์นด๋ฉ๋ผ ํ๋ฉด์์ ํ์ผ ์ ๋ก๋๊ฐ ์ด๋ฆด ๋ ์ด ๋ฌธ์ ๊ฐ ๋ํ๋ฉ๋๋ค.