标签: uirefreshcontrol

没有UITableViewController的UIRefreshControl

只是好奇,因为它似乎不可能,但有没有一个偷偷摸摸的方式来利用新的iOS 6 UIRefreshControl类而不使用UITableViewController子类?

我经常使用UIViewController一个UITableView子视图,并符合UITableViewDataSourceUITableViewDelegate而不是使用UITableViewController顾左右而言他.

objective-c uitableview ios ios6 uirefreshcontrol

306
推荐指数
6
解决办法
8万
查看次数

如何在Swift中使用pull刷新?

我正在使用swift构建一个RSS阅读器,需要实现pull to reload功能.

这是我试图这样做的方式.

class FirstViewController: UIViewController,
    UITableViewDelegate, UITableViewDataSource {

   @IBOutlet var refresh: UIScreenEdgePanGestureRecognizer
   @IBOutlet var newsCollect: UITableView

   var activityIndicator:UIActivityIndicatorView? = nil

   override func viewDidLoad() {
       super.viewDidLoad()
       self.newsCollect.scrollEnabled = true
      // Do any additional setup after loading the view, typically from a nib.

      if nCollect.news.count <= 2{
          self.collectNews()
       }
      else{
          self.removeActivityIndicator()
       }
      view.addGestureRecognizer(refresh)
   }



@IBAction func reload(sender: UIScreenEdgePanGestureRecognizer) {
    nCollect.news = News[]()
    return newsCollect.reloadData()
}
Run Code Online (Sandbox Code Playgroud)

我正进入(状态 :

属性'self.refresh'未在super.init调用中初始化

请帮助我理解手势识别器的行为.一个工作示例代码将是一个很好的帮助.

谢谢.

xcode ios uirefreshcontrol swift

214
推荐指数
8
解决办法
16万
查看次数

UICollectionView上的UIRefreshControl仅在集合填充容器高度时才有效

我试图将添加UIRefreshControlUICollectionView,但问题是,刷新控制不会出现,除非集合视图填补了其父容器的高度.换句话说,除非集合视图足够长以至于需要滚动,否则无法向下拉以显示刷新控件视图.一旦集合超过其父容器的高度,它就会被拉下并显示刷新视图.

我已经UICollectionView在主视图内部设置了一个快速iOS项目,并在集合视图中添加了一个插座,以便我可以添加UIRefreshControlviewDidLoad.还有一个带有重用标识符的原型单元cCell

这是控制器中的所有代码,它很好地演示了这个问题.在此代码中,我将单元格的高度设置为100,这不足以填充显示,因此无法拉取视图并且不会显示刷新控件.将其设置为更高的值以填充显示,然后它可以工作.有任何想法吗?

@interface ViewController () <UICollectionViewDelegateFlowLayout, UICollectionViewDataSource>
@property (strong, nonatomic) IBOutlet UICollectionView *collectionView;
@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
    [self.collectionView addSubview:refreshControl];
}

-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
    return 1;
}

-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
    return 1;
}

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    return [collectionView dequeueReusableCellWithReuseIdentifier:@"cCell" forIndexPath:indexPath];
}

-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
    return CGSizeMake(self.view.frame.size.width, 100);
}
Run Code Online (Sandbox Code Playgroud)

ios uicollectionview uirefreshcontrol

142
推荐指数
3
解决办法
6万
查看次数

UIRefreshControl - 当UITableViewController在UINavigationController中时,beginRefreshing无效

我在我的UITableViewController(在UINavigationController中)设置了一个UIRefreshControl,它按预期工作(即下拉触发正确的事件).但是,如果我以编程beginRefreshing方式在刷新控件上调用实例方法,如:

[self.refreshControl beginRefreshing];
Run Code Online (Sandbox Code Playgroud)

什么都没发生.它应该动画下来并显示微调器.endRefreshing刷新后调用时,该方法可以正常工作.

我用这种行为掀起了一个基本的原型项目,当我的UITableViewController直接添加到应用程序委托的根视图控制器时它可以正常工作,例如:

self.viewController = tableViewController;
self.window.rootViewController = self.viewController;
Run Code Online (Sandbox Code Playgroud)

但是,如果我首先添加tableViewController到UINavigationController,然后添加导航控制器rootViewController,该beginRefreshing方法不再有效.例如

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:tableViewController];
self.viewController = navController;
self.window.rootViewController = self.viewController;
Run Code Online (Sandbox Code Playgroud)

我的感觉是这与导航控制器中的嵌套视图层次结构有关,不能与复习控件一起使用 - 任何建议?

谢谢

objective-c uitableview uinavigationcontroller ios uirefreshcontrol

114
推荐指数
10
解决办法
6万
查看次数

我可以在UIScrollView中使用UIRefreshControl吗?

UIScrollView我的应用程序中已有大约5个已加载多个.xib文件.我们现在想用一个UIRefreshControl.它们构建为与UITableViewControllers一起使用(根据UIRefreshControl类引用).我不想重新做所有5个UIScrollView工作.我已经尝试过使用UIRefreshControlUIScrollView的,除了一些东西之外,它按预期工作.

  1. 在刷新图像变成加载器之后,UIScrollView跳跃大约10个像素,这只有在我非常小心地UIScrollview向下拖动时才会发生.

  2. 当我向下滚动并启动重装,然后让围棋UIScrollView,在UIScrollView那里我让它去住宿.重新加载完成后,UIScrollView跳转到顶部没有动画.

这是我的代码:

-(void)viewDidLoad
{
      UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
      [refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged];
      [myScrollView addSubview:refreshControl];
}

-(void)handleRefresh:(UIRefreshControl *)refresh {
      // Reload my data
      [refresh endRefreshing];
}
Run Code Online (Sandbox Code Playgroud)

有什么方法可以节省一大堆时间并使用UIRefreshControla UIScrollView

谢谢!!!

iphone uiscrollview xamarin.ios ios uirefreshcontrol

73
推荐指数
5
解决办法
3万
查看次数

UIRefreshControl iOS 6 xcode

有没有人有一个如何将新的实现UIRefreshControl到xcode 的简短示例.我有一个UITableViewController显示推文,希望能够下拉和刷新.

iphone xcode objective-c ios6 uirefreshcontrol

42
推荐指数
3
解决办法
4万
查看次数

如何"隐藏"UIRefreshControl?

偶尔我的表视图将不会连接到要刷新的服务,在这种情况下,我不希望UIRefreshControl存在.

我在viewDidLoad中添加它后,我尝试在某些情况下隐藏它setEnabled:,setHidden:但似乎都没有效果.

objective-c ios uirefreshcontrol

31
推荐指数
5
解决办法
2万
查看次数

在iOS7中使用UICollectionView的UIRefreshControl

在我的应用程序中,我使用刷新控件和集合视图.

UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:[UIScreen mainScreen].bounds];
collectionView.alwaysBounceVertical = YES;
...
[self.view addSubview:collectionView];

UIRefreshControl *refreshControl = [UIRefreshControl new];
[collectionView addSubview:refreshControl];
Run Code Online (Sandbox Code Playgroud)

iOS7有一些令人讨厌的错误,当你向下拉集合视图并且在刷新开始时不释放你的手指时,垂直contentOffset移动20-30点向下,这导致丑陋的滚动跳跃.

如果你在外面使用刷新控件,表也有这个问题UITableViewController.但是对于他们来说,可以通过将您的UIRefreshControl实例分配给UITableView名为的私有属性来轻松解决_refreshControl:

@interface UITableView ()
- (void)_setRefreshControl:(UIRefreshControl *)refreshControl;
@end

...

UITableView *tableView = [[UITableView alloc] initWithFrame:[UIScreen mainScreen].bounds];
[self.view addSubview:tableView];

UIRefreshControl *refreshControl = [UIRefreshControl new];
[tableView addSubview:refreshControl];
[tableView _setRefreshControl:refreshControl];
Run Code Online (Sandbox Code Playgroud)

但是UICollectionView没有这样的属性所以必须有一些方法来手动处理它.

objective-c uitableview ios uicollectionview uirefreshcontrol

31
推荐指数
1
解决办法
1万
查看次数

UIRefreshControl - 如何在触摸释放后进行刷新操作?

长时间监听,第一次调用这里堆栈溢出.要温柔.

我在UITableView上实现UIRefreshControl来刷新表的数据.在其他拉动刷新实现中,刷新过程不会开始,直到用户的手指在拉动刷新距离内被抬起.UIRefreshControl似乎没有立即显示它.

我的UIRefreshControl初始化代码:

UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
[self.tableView addSubview:refreshControl];
Run Code Online (Sandbox Code Playgroud)

我的刷新:代码是相当基本的:

-(void)refresh:(id)sender {
(... refresh code ...)
[sender endRefreshing];
}
Run Code Online (Sandbox Code Playgroud)

如何延迟刷新:功能,直到用户从拉动中移开手指?

iphone objective-c ios uirefreshcontrol

29
推荐指数
3
解决办法
2万
查看次数

UIRefreshControl和UITableView的backgroundVIew

我有一个UITableViewController,我在其上设置了backgroundView.该控制器安装了UIRefreshControl.问题是,当我设置背景视图时,刷新控件是不可见的.如果我删除背景视图,我可以看到刷新控件.

难道我做错了什么?

ios uirefreshcontrol

29
推荐指数
1
解决办法
7415
查看次数