webView 를 얹이고 그 안에 페이지를 띄웠는데 중앙으로 제대로 배치가 안되는 문제가 발생..
(폰 용 페이지를 패드에서도 보는 거라 html 로 만든 테이블뷰가 가운데로 와야 정상임)
난 처음에 뷰 프레임이나 autoresizemask 가 제대로 안잡힌 건줄 알았는데 그게 아니더라..
원인은 meta 태그의 viewport 항목.
width=device-width 이렇게 넘겨주는데 말그대로 device width 다 보니
웹뷰의 크기와는 상관없이 기기의 너비가 반환되어서 들어감.
따라서 사파리라 던가 풀스크린 웹뷰의 경우에는 상관없지만 내가 한것 처럼 화면의 일부분에만 웹뷰를 띄우고
사용할 시에는 전체 너비를 제대로 못 받아 오는 문제가 생겼다.
해결법은 의외로 간단.
webview 의 delegate 지정 후 delegate 에서
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.querySelector('meta[name=viewport]').setAttribute('content', 'width=%d;', false); ", (int)webView.frame.size.width]];
}
이렇게 해주면 된다.
기기의 화면이 회전되는 등 너비 값이 변하였을때도 바로바로 잘 적용됨.
'개발개발 > Mac, iOS' 카테고리의 다른 글
[번역] MobileSubstrate의 위험들 (0) | 2013.03.02 |
---|---|
트윅 제작을 쉽게 하는 툴들 (5) | 2013.03.02 |
BeeAppControl 개발중 버젼 공개 (26) | 2013.02.06 |
BeeAppControl - iOS의 게임 등 앱을 키보드로 제어 (10) | 2013.01.14 |
GSEvent.h (for hid-support) (0) | 2012.12.23 |