第一次在簡書上寫東西,只是做一個簡單的分享,大神勿噴 .今天寫了一個小Demo,swift和OC版都寫了,主要有兩個功能:
1.頭部圖片下拉放大.
先講一下我的思路,在控制器上監(jiān)聽scrollView的移動偏移量,也就是代理方法中scrollViewDidScroll方法中拿到scrollView.contentOffset.y,判斷偏移量Y值<0改變圖片imgView的frame.
具體代碼:
swift:
extension ViewController:UIScrollViewDelegate{
func scrollViewDidScroll(scrollView:UIScrollView) {
let y = scrollView.contentOffset.y;
var imgViewF = self.imgView.frame;
//放大圖片處理
//監(jiān)聽到scrollView向下滾動時,改變圖片的Frame,達(dá)到放大圖片的效果
if(y <0) {
imgViewF.origin.y = ?y;
imgViewF.origin.x = ?y;
imgViewF.size.height = imgH-y;
imgViewF.size.width = screenW- y;
self.imgView.frame = imgViewF;
}
}
}
OC:
- ?(void)scrollViewDidScroll:(UIScrollView*)scrollView{
CGFloaty = scrollView.contentOffset.y;
CGRectimgViewF =self.imgView.frame;
//放大圖片處理
//監(jiān)聽到scrollView向下滾動時,改變圖片的Frame,達(dá)到放大圖片的效果
if(y <0) {
imgViewF.origin.y= y;
imgViewF.origin.x= y;
imgViewF.size.height=imgH-y;
imgViewF.size.width= [UIScreenmainScreen].bounds.size.width- y;
self.imgView.frame= imgViewF;
}
}
2.仿美團(tuán)附近詳情,向上滑動使搶購View停留在頂部.
這個GIF圖沒做好,效果不是很明顯,實(shí)現(xiàn)的效果是白色View會停留在頂部,下面的內(nèi)容View可以繼續(xù)滑動.
我的思路是,監(jiān)聽scrollView滾動偏移量,當(dāng)偏移量Y大于某個值時,改變搶購View的frame然后添加到self.View上,偏移量小于某個值時改變搶購View的frame添加回scrollView.隨scrollView一起滾動.
具體代碼:
swift:
/*
當(dāng)scrollView向上滾動超過了圖片的高度時,改變搶購View的Frame并添加到控制器的View上;
滾動Y值小余圖片高度時,改變View的Frame重新添加回ScrollView上.
*/
if(y >=imgH) {
PanicView.frame=CGRectMake(0,0,screenW,60);
self.view.addSubview(PanicView)
}else{
PanicView.frame=CGRectMake(0,imgH,screenW,60);
scrollView.addSubview(PanicView)
}
OC:
if(y >=imgH-64) {
self.navigationController.navigationBar.hidden=NO;
self.navigationItem.title=@"仿美團(tuán)附近詳情";
self.moveView.frame=CGRectMake(0,64,screeW,60);
[self.viewaddSubview:self.moveView];
}else{
self.navigationController.navigationBar.hidden=YES;
self.moveView.frame=CGRectMake(0,imgH,screeW,60);
[scrollViewaddSubview:self.moveView];
}
本來想把源碼附件上傳的,可是不支持上傳,如果有什么疑問歡迎給我留言!整體實(shí)現(xiàn)其實(shí)是比較簡單,主要是思路.