ios tableView 상단 스프링 이미지 효과 구현
그림 을 tableView 의 tableHeaderView 에 올 려 놓 고 tablview 를 아래로 이동 시 켜 그림 의 frame 을 바 꾸 는 것 이 효과 적 입 니 다.물론 이 효 과 는 매우 간단 해서 고수 가 생략 할 수 있다.
코드 는 다음 과 같다.
import UIKit
class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate {
lazy var myTableView : UITableView! = {
var tableView = UITableView.init(frame: self.view.frame,style:UITableViewStyle.plain)
tableView.delegate = self
tableView.dataSource = self
tableView.register(UITableViewCell.classForCoder(), forCellReuseIdentifier: "mycell")
return tableView
}()
var headerImageView:UIImageView?
var headerView:UIView?
var headerViewHeight:CGFloat = 0.0
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
setupUI()
}
func setupUI(){
headerView = UIView.init(frame: CGRect(x:0,y:0,width:self.view.frame.width,height:300))
headerViewHeight = headerView!.frame.height;
self.view.addSubview(headerView!)
headerImageView = UIImageView.init(frame: headerView!.frame)
headerImageView?.image = UIImage.init(named: "bg-mine")
headerView?.addSubview(headerImageView!)
myTableView.tableHeaderView = headerView
self.view.addSubview(myTableView)
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 2
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell:UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "mycell", for: indexPath)
cell.textLabel?.text = " "
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 50
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let contentOffSetY = scrollView.contentOffset.y
if contentOffSetY < 0 {
var rect = headerView?.frame
rect?.size.height = headerViewHeight - contentOffSetY
let headerViewWidth = headerView?.frame.size.width
rect?.size.width = headerViewWidth!*(headerViewHeight-contentOffSetY)/headerViewHeight
rect?.origin.x = -((rect?.size.width)! - headerViewWidth!)/2
rect?.origin.y = contentOffSetY
headerView?.frame = rect!
headerImageView?.frame = rect!
}
}
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.