Tag: uitableview

即使图像较小,如何使UITableViewCell的ImageView成为固定大小

我有一大堆用于单元格图像视图的图像,它们都不大于50×50。 例如40×50,50×32,20×37 …… 当我加载表视图时,由于图像的宽度变化,文本不排列。 此外,我希望小图像出现在中心,而不是在左边。 这是我在我的'cellForRowAtIndexPath'方法里面的代码 cell.imageView.autoresizingMask = ( UIViewAutoresizingNone ); cell.imageView.autoresizesSubviews = NO; cell.imageView.contentMode = UIViewContentModeCenter; cell.imageView.bounds = CGRectMake(0, 0, 50, 50); cell.imageView.frame = CGRectMake(0, 0, 50, 50); cell.imageView.image = [UIImage imageWithData: imageData]; 正如你可以看到我已经尝试了一些东西,但没有一个工作。

UIGestureRecognizer和UITableViewCell问题

我将UISwipeGestureRecognizer附加到cellForRowAtIndexPath:方法中的UITableViewCell ,如下所示: – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; UISwipeGestureRecognizer *gesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(didSwipe:)]; gesture.direction = UISwipeGestureRecognizerDirectionRight; [cell.contentView addGestureRecognizer:gesture]; [gesture release]; } return cell; } 但是, didSwipe方法总是在成功刷卡时被调用两次。 我最初认为这是因为手势开始和结束,但是如果我注销了gestureRecognizer本身,它们都处于“结束”状态: -(void)didSwipe:(UIGestureRecognizer *)gestureRecognizer { […]

最好的方法来检查UITableViewCell是否完全可见

我有一个UITableView与不同高度的细胞,我需要知道什么时候他们是完全可见或不。 此刻,我正在遍历可见单元格列表中的每个单元格,以检查每次滚动视图时是否完全可见。 这是最好的办法吗? 这是我的代码: – (void)scrollViewDidScroll:(UIScrollView *)aScrollView { CGPoint offset = aScrollView.contentOffset; CGRect bounds = aScrollView.bounds; NSArray* cells = myTableView.visibleCells; for (MyCustomUITableViewCell* cell in cells) { if (cell.frame.origin.y > offset.y && cell.frame.origin.y + cell.frame.size.height < offset.y + bounds.size.height) { [cell notifyCompletelyVisible]; } else { [cell notifyNotCompletelyVisible]; } } } 编辑: 请注意* – (NSArray )visibleCells返回可见的单元格,它们都是完全可见的,部分可见的。 编辑2: […]

从Nib加载可重用的UITableViewCell

我可以使用http://forums.macrumors.com/showthread.php?t=545061中的线程描述的技术来devise自定义的UITableViewCells并加载它们。 但是,使用该方法不再允许您使用reuseIdentifier来初始化单元,这意味着您必须在每次调用时创build每个单元的全新实例。 有没有人想出一个好的方法来caching特定的单元格types的重用,但仍然能够在界面生成器中devise它们?

UITableViewCell里面的UICollectionView – dynamic高度?

我们的一个应用程序屏幕要求我们在UITableViewCell放置一个UICollectionView 。 这个UICollectionView将有一个dynamic数量的项目,导致一个高度,必须dynamic计算。 但是,我遇到了问题,试图计算embedded的UICollectionView的高度。 我们的总体UIViewController是在Storyboard中创build的,并且使用了自动布局。 但是,我不知道如何根据UICollectionView的高度来dynamic增加UITableViewCell的高度。 任何人都可以提供一些关于如何完成这一点的提示或build议?

对UITableViewCell的accessoryView使用自定义图像,并使其响应UITableViewDelegate

我正在使用一个自定义绘制的UITableViewCell,包括单元的accessoryView相同。 我的设置为accessoryView发生像这样的事情: UIImage *accessoryImage = [UIImage imageNamed:@"accessoryDisclosure.png"]; UIImageView *accImageView = [[UIImageView alloc] initWithImage:accessoryImage]; accImageView.userInteractionEnabled = YES; [accImageView setFrame:CGRectMake(0, 0, 28.0, 28.0)]; self.accessoryView = accImageView; [accImageView release]; 另外,当单元格初始化时,使用initWithFrame:reuseIdentifier:我确保设置以下属性: self.userInteractionEnabled = YES; 不幸的是在我的UITableViewDelegate中,我的tableView:accessoryButtonTappedForRowWithIndexPath:方法(尝试重复10次)没有被触发。 代表确实连线正确。 什么可能会丢失? 谢谢大家。

UITableView – 更改节标题颜色

我怎样才能改变UITableView中的节头的颜色? 编辑 : 由DJ-S提供的答案应该考虑iOS 6及以上。 接受的答案已过时。

UITableView和UIView与keyboardWillShow

我有这个UITableView几乎填充我的整个UIViewController,我有一个UIView在底部包含一个button和一个文本框。 当我点击文本框时,我想让UIView和tableview向上推,这样UIView就在键盘之上。 – UIView: – UITextField – UIButton 我已经在这里尝试了多个build议,但似乎没有在我的情况下工作。

在iOS应用上caching图像的最佳方法?

不久,我有一个NSDictionary与图像的url,我需要在我的UITableView显示。 每个单元格都有一个标题和一个图像。 我已经成功地做到了这一点,虽然滚动是滞后的,因为它似乎像细胞下载他们的图像,每次他们进入屏幕。 我search了一下,在github上find了SDWebImage 。 这使得滚动条消失。 我不完全确定它做了什么,但我相信它做了一些caching。 但! 每次我第一次打开应用程序时,我都看不到图像,我必须向下滚动,然后备份才能到达。 如果我用主页button退出应用程序,并再次打开,那么它看起来像caching工作,因为屏幕上的图像是可见的,但是,如果我向下滚动一个单元格,则下一个单元格没有图像。 直到我滚过去,然后回来,或者如果我点击它。 这是caching应该如何工作? 或者什么是caching从网上下载的图像的最佳方式? 图像正在被更新,所以我只是将它们导入到项目中,但我希望有可能在不上载更新的情况下更新图像。 是否不可能在启动时从caching中整个tableview加载所有图像(假设caching中有东西)? 这就是为什么我有时看到没有图像的细胞? 是的,我很难理解什么是caching。 – 编辑 – 我只用相同尺寸(500×150)的图片进行了尝试,并且纵横误差消失了,但是当我向上或向下滚动时,所有单元格上都有图像,但起初它们是错误的。 在单元格在视图中几毫秒之后,出现正确的图像。 这是令人惊讶的,但也许它是如何呢?它似乎喜欢它首先从caching中select错误的索引。 如果我滚动缓慢,那么我可以看到图像从错误的图像闪烁到正确的。 如果我滚动的速度很快,那么我相信在任何时候都会看到错误的图像,但是由于快速滚动,我无法判断。 当快速滚动变慢并最终停止时,错误的图像仍然出现,但是在停止滚动之后立即更新到正确的图像。 我也有一个自定义的UITableViewCell类,但我没有做任何大的改变..我还没有经过我的代码非常多,但我想不出什么可能是错的。也许我有东西在错误的顺序..我编程了很多在Java,C#,PHP等,但我很难理解Objective-C,所有的.h和.m …我也` @interface FirstViewController : UITableViewController{ /**/ NSCache *_imageCache; } (其他variables)在FirstViewController.h 。 这是不正确的? 这是我的cellForRowAtIndexPath 。 – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"hallo"; CustomCell *cell […]

观察UITableView中的多点触控手势

我正在寻找实施一个UITableView顶部捏,我已经看了几种方法,包括这一个: 类似的问题 但是,虽然我可以创build一个UIViewTouch对象,并将其覆盖到我的UITableView,滚动事件不会被中继到我的UITableView,我仍然可以select单元格,并通过触发到一个新的ViewController对象的转换,他们正确地响应。 但是我不能通过touchesBegan,touchesMoved和touchesEnded事件来滚动UITableView。