日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UIRefreshControl使用总结

發(fā)布時間:2025/3/21 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UIRefreshControl使用总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標準>>>

????UIRefreshControl 的使用還是比較簡單的,看一下?UIRefreshControl 的定義,基本就知道怎么用了。

????UIRefreshControl 是專門為?UITableViewController 設計的,官方不建議在非 UITableViewController 中使用。

????本文主要解決兩個問題:一是在非?UITableViewController 中使用,二是修改菊花顯示位置。

1、UITableViewController + UIRefreshControl

-?(void)viewDidLoad?{[super?viewDidLoad];UIRefreshControl?*refreshControl?=?[[UIRefreshControl?alloc]?init];[refreshControl?addTarget:self?action:@selector(refresh:)?forControlEvents:UIControlEventValueChanged];self.refreshControl?=?refreshControl; }-?(void)refresh:(UIRefreshControl?*)refreshControl {NSLog(@"start?refresh");[self?performSelector:@selector(endRefresh:)?withObject:refreshControl?afterDelay:2.0f]; }-?(void)endRefresh:(UIRefreshControl?*)refreshControl {[refreshControl?endRefreshing];NSLog(@"end?refresh"); }

2、UIViewController + UITableView(UIScrollView) +?UIRefreshControl

@interface?TableViewDemo?()?<UITableViewDataSource,?UITableViewDelegate>@property?(nonatomic,?weak)?IBOutlet?UITableView?*tableView;@end -?(void)viewDidLoad?{[super?viewDidLoad];UIRefreshControl?*refreshControl?=?[[UIRefreshControl?alloc]?init];[refreshControl?addTarget:self?action:@selector(refresh:)?forControlEvents:UIControlEventValueChanged];[self.tableView?addSubview:refreshControl]; }-?(void)refresh:(UIRefreshControl?*)refreshControl {NSLog(@"start?refresh");[self?performSelector:@selector(endRefresh:)?withObject:refreshControl?afterDelay:2.0f]; }-?(void)endRefresh:(UIRefreshControl?*)refreshControl {[refreshControl?endRefreshing];NSLog(@"end?refresh"); }

????直接集成上去,這時候你會發(fā)現(xiàn)下拉的時候,頁面會跳動一下(將UITableView 換成 UIScrollView 也會有同樣的問題)。

????既然?UIRefreshControl 是由?UITableViewController 控制的,那就讓?UITableViewController 來控制,修改代碼如下:

-?(void)viewDidLoad?{[super?viewDidLoad];UITableViewController?*tableVC?=?[[UITableViewController?alloc]?init];tableVC.tableView?=?self.tableView;UIRefreshControl?*refreshControl?=?[[UIRefreshControl?alloc]?init];[refreshControl?addTarget:self?action:@selector(refresh:)?forControlEvents:UIControlEventValueChanged];tableVC.refreshControl?=?refreshControl; }

????修改之后,重新運行,這時內(nèi)容跳動的問題沒有了。

????參考:http://stackoverflow.com/questions/12497940/uirefreshcontrol-without-uitableviewcontroller/

????對于?UIScrollView,目前沒有找到更好的解決方案,如果確實要使用的話,那就用只有一個Cell的UITableView來代替 UIScrollView。參考:http://segmentfault.com/q/1010000001823169

3、修改?UIRefreshControl 顯示的位置

????菊花默認位置是在中間,總有那么一些奇葩需求,需要將菊花顯示在其他位置。目前發(fā)現(xiàn)了兩種方式修改顯示位置,但是總體來說本質(zhì)原理應該是一樣的。

????方案一:修改?UIRefreshControl 的 bounds,從而修改其顯示位置,代碼如下:

-?(void)viewDidLoad?{[super?viewDidLoad];UIRefreshControl?*refreshControl?=?[[UIRefreshControl?alloc]?init];[refreshControl?addTarget:self?action:@selector(refresh:)?forControlEvents:UIControlEventValueChanged];self.refreshControl?=?refreshControl;CGRect?bounds?=?refreshControl.bounds;bounds.origin.x?=?50;//左移?50 //????rect.origin.x?=?-50;//右移?50bounds.origin.y?=?10;//上移?10; //????rect.origin.y?=?-10;//下移?10;refreshControl.bounds?=?bounds; }

????方案二:用一個 UIView(refreshControlContainerView) 來顯示?UIRefreshControl,通過修改?refreshControlContainerView.frame 來修改菊花的顯示位置,代碼如下:?

-?(void)viewDidLoad?{[super?viewDidLoad];UIRefreshControl?*refreshControl?=?[[UIRefreshControl?alloc]?init];[refreshControl?addTarget:self?action:@selector(refresh:)?forControlEvents:UIControlEventValueChanged];self.refreshControl?=?refreshControl;UIView?*refreshControlContainerView?=?[[UIView?alloc]?initWithFrame:CGRectMake(-50,?-10,?[UIScreen?mainScreen].bounds.size.width,?44.0f)];[self.tableView?addSubview:refreshControlContainerView];[refreshControlContainerView?addSubview:self.refreshControl]; }


4、一個個人主頁的實例

? ? 實例代碼,請看 UserHomeViewController。

5、總結(jié)

????UIRefreshControl 只適用于一些簡單、與特殊的頁面,只能實現(xiàn)“下拉刷新”,不能實現(xiàn)“上拉加載更多”。

????這里對于“下拉刷新”與“上拉加載更多”推薦使用?MJRefresh ,用法簡單。


項目源代碼:https://git.oschina.net/cavintang/refresh-control-demo.git


轉(zhuǎn)載于:https://my.oschina.net/songzhu/blog/611343

總結(jié)

以上是生活随笔為你收集整理的UIRefreshControl使用总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲男男网站 | 久久人人添人人爽添人人片 | 成人自拍视频网 | 成人av中文字幕 | 亚洲第一精品在线观看 | 日韩中文字幕视频 | 男人的天堂在线播放 | 亚洲欧洲在线播放 | 操碰视频在线 | 欧美a级在线免费观看 | 性欧美丰满熟妇xxxx性 | 国产免费91视频 | aaa在线| 91看片黄| 一区二区日韩欧美 | 四虎影视永久 | 免费av看片 | 日韩 国产 在线 | 91蜜桃| 最近中文字幕免费mv视频7 | 午夜日韩精品 | wwwwww色| 山村淫强伦寡妇 | 激情伊人五月天 | 欧美抠逼视频 | 午夜剧场成人 | 福利网站在线 | www夜片内射视频日韩精品成人 | 色综合久久久 | 里番精品3d一二三区 | 俺来也av | 黄色亚洲视频 | 日韩精品一区二区三区网站 | 台湾av在线播放 | 黄色91免费观看 | 在线精品小视频 | 亚洲综合不卡 | 一区二区三区四区人妻 | 日本青草视频 | 日日干夜夜骑 | 4438x全国最大成人网 | 精品黑人一区二区三区国语馆 | 亚洲乱轮| 亚洲欧洲精品一区二区三区 | 国模私拍在线 | 黄色在线免费看 | 人成亚洲| 国产福利小视频在线观看 | 夜晚福利视频 | 亚洲一本之道 | 日韩欧美视频免费观看 | 福利资源在线 | 青草青在线视频 | 日韩女同互慰一区二区 | 欧美com| 麻豆一区二区三区在线观看 | wwwwyoujizzcom| 国产精品无套 | 国产精品羞羞答答在线观看 | 国产伦精品视频一区二区三区 | 色窝av| 波多野结衣一区二区三区在线观看 | avtt一区| 伊人久久综合视频 | 综合久久网 | 国产爆乳无码一区二区麻豆 | 新久草视频 | 欧美另类日韩 | 黄色一级片在线免费观看 | 综合一区二区三区 | 91蝌蚪91九色| 91精品国产乱码久久久张津瑜 | 91午夜交换视频 | 不卡久久| 色男人在线 | 欧美国产精品一区 | 99热这里都是精品 | 国产一级18片视频 | 欧美顶级少妇做爰 | 日韩逼| 精品欧美视频 | 第四色激情 | 秋霞在线一区二区 | 成人精品 | 天天干天天添 | 超碰在线观看免费版 | 欧美插插视频 | 在线激情小视频 | 欧美日韩在线免费播放 | 日本欧美一级 | 免费色av| 亚州综合视频 | 香蕉视频在线网址 | 国产免费一区二区三区最新6 | sese视频在线观看 | 九九av在线 | 有机z中国电影免费观看 | www.国产麻豆 | 粉嫩av一区二区三区 |