문제 : navigation bar를 포함하고 있는 table view 에서 배경 화면을 전체로 사용하고 싶은데...
일단 navigation bar와 table view 화면이 분리되어 있어 쉽지 않았다.
stack overflow에서 주는 해답은 tableview의 background view 를 사용하라는 것이었는데, 이건 navigation bar에는 나오지 않았다.
두번째 시도는 addsubview 를 이용해서 맨 아래로 보내는 방법이었는데 역시 navigation bar에는 적용이 안되어서 실패.
결국 마지막으로 처리한 것은 배경 이미지를 navigation bar 높이로 짤려 붙히고 나머지 짤린 배경을 table view에 붙히는 방법이었다. 아래 소스를 참고하기 바란다.
//네비게이션 바 & 테이블 뷰 배경화면 설정
let bgImage = imageResize((UIImage(named: "test.png"))! as UIImage, sizeChange: CGSizeMake(self.view.frame.size.width, self.view.frame.height))
let naviImage = bgImage.crop(CGRect(x: 0,y: 0,width: self.view.frame.size.width,height: 64))
self.navigationController!.navigationBar.setBackgroundImage(naviImage,
forBarMetrics: .Default)
let tableBgImage = bgImage.crop(CGRect(x: 0,y: 64,width: self.view.frame.size.width,height: self.view.frame.size.height-64))
tableView.backgroundView = UIImageView(image: tableBgImage)
self.navigationController!.navigationBar.translucent = false
crop 함수는 extension한 함수인대 내용은 다음과 같다.
extension UIImage {
func crop(var rect: CGRect) -> UIImage {
rect.origin.x*=self.scale
rect.origin.y*=self.scale
rect.size.width*=self.scale
rect.size.height*=self.scale
let imageRef = CGImageCreateWithImageInRect(self.CGImage, rect)
let image = UIImage(CGImage: imageRef!, scale: self.scale, orientation: self.imageOrientation)
return image
}
}
혹시 다른 심플한 방법이 있으면 알려주기 바란다. ㅠㅠ
'Programer > iOS' 카테고리의 다른 글
[iOS] 앱 배포시 필요한 인증서와 키, 주의해야 할 점 (0) | 2016.01.04 |
---|---|
[Swift] UrlEncoding UTF-8 (0) | 2015.12.21 |
[Xcode] TableView 에서 멈춤 현상이 일어나는 경우 (0) | 2015.10.30 |
[Swift] Local Notification 일주일 마다 알림 설정하기 (0) | 2015.10.14 |
[Swift] 간편하게 DB접속하기 (SQLite) (0) | 2015.09.30 |