Tag: 客观

如何在iPhone中通过objective-c以编程方式调整图像大小

我有一个应用程序,我在一个小空间显示大图像。 图像是相当大的,但我只显示在100×100像素的帧。 我的应用程序响应缓慢,因为我使用的图像的大小。 为了提高性能,我如何使用Objective-C以编程方式调整图像大小?

有没有办法更新单个UITableViewCell的高度,而无需重新计算每个单元格的高度?

我有一个UITableView与几个不同的部分。 一个部分包含单元格,当用户将文本input到UITextView中时将调整其大小。 另一部分包含呈现HTML内容的单元格,对此,计算高度相对较为昂贵。 现在,当用户inputUITextView时,为了获得表视图来更新单元格的高度,我打电话给 [self.tableView beginUpdates]; [self.tableView endUpdates]; 但是,这导致表格重新计算表格中每个单元格的高度,当我真的只需要更新input到的单个单元格。 不仅如此,而不是使用tableView:estimatedHeightForRowAtIndexPath:来重新计算估计的高度,而是为每个单元调用tableView:heightForRowAtIndexPath:即使那些不被显示的单元。 有没有什么办法可以让表格视图更新一个单元格的高度,而不用做所有这些不必要的工作? 更新 我仍然在寻找解决scheme。 build议,我已经尝试使用reloadRowsAtIndexPaths: ,但它看起来不会像这样工作。 调用reloadRowsAtIndexPaths:即使单行也仍然会导致为每行调用heightForRowAtIndexPath:即使cellForRowAtIndexPath:只会针对您请求的行调用。 实际上,它看起来像插入,删除或重新载入行的时候, heightForRowAtIndexPath:将针对表格单元格中的每一行调用。 我也试着把代码放在willDisplayCell:forRowAtIndexPath:来计算单元出现之前的高度。 为了这个工作,我需要强制表视图重新请求行的高度后,我做了计算。 不幸的是,调用[self.tableView beginUpdates]; [self.tableView endUpdates]; [self.tableView beginUpdates]; [self.tableView endUpdates]; from willDisplayCell:forRowAtIndexPath:在UITableView的内部代码中导致索引越界exception。 我猜他们不指望我们这样做。 我不禁觉得这是一个SDK中的错误,作为对[self.tableView endUpdates]响应,它不会调用estimatedHeightForRowAtIndexPath:对于不可见的单元格,但我仍然试图find某种解决方法。 任何帮助表示赞赏。

dispatch_get_global_queue vs dispatch_get_main_queue

开始了解核心数据和dispatch_async。 有一块代码从一组数据中获取图像的URL,并将其设置为如下所示的核心数据模型 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ NSString *urlString = [[[photoDictionary valueForKey:@"images"] objectAtIndex:0] valueForKey:@"url"]; NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]]; dispatch_async(dispatch_get_main_queue(), ^{ [photoModel setValue:imageData forKey:@"photoImageData"]; 有人可以向我解释为什么我们使用dispatch_get_global_queue为外部dispatch_async和dispatch_get_main_queue为内部dispatch_async。

自定义颜色我的UIActivityIndi​​catorView

我想让我的UIActivityIndicatorView上色为自定义颜色。 有没有办法设置这个属性?

如何在select时更改UITableViewCell的颜色?

我有一个像这样的菜单: 每个单元的正常(未选定)状态是一个图像,所选状态也是一个图像(看起来像默认的蓝色)。 但是,我想添加一个额外的第三个图像,以便当用户select一个单元格时,在进行蓝色(选定)之前,它会短暂更改为第三个颜色。 这是我的代码: (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { [tableView setBackgroundColor:[UIColor clearColor]]; NSString *cellIdentifier = @"MenuItemCell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier]; } UIImage *cellBackgroundNormal = [UIImage imageNamed:@"cell_menu_normal"]; UIImage *cellBackgroundSelected = [UIImage imageNamed:@"cell_menu_selected"]; UIImageView *cellBackgroundView = [[UIImageView alloc] initWithImage:cellBackgroundNormal]; UIImageView *cellBackgroundSelectedView = [[UIImageView alloc] […]

tableView:canEditRowAtIndexPath:当popupviewController时崩溃

我有一个UITableView viewController,我允许用刷卡编辑(删除)的行 – 很像邮件应用程序。 我这样做,除其他外,这种方法: – (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { return YES; } 但是,如果我有一个删除button显示,并在同一时间我使用我的UINavigationController后退导航,即当我popViewControllerAnimated:应用程序崩溃与以下消息: [ViewController tableView:canEditRowAtIndexPath:]:发送到释放实例0xaae64d0的消息 我该如何解决这个问题?

UIRefreshControl – 拉到iOS 7中刷新

我试图在我的表格视图中获取iOS 7的拉动function。 在我的viewDidLoad ,我有: refreshControl = [[UIRefreshControl alloc] init]; [self.mytableView setContentOffset:CGPointMake(0, refreshControl.frame.size.height) animated:YES]; [refreshControl beginRefreshing]; [refreshControl addTarget:self action:@selector(refreshTable) forControlEvents:UIControlEventValueChanged]; 然后我运行: -(void)refreshTable { [self.mytableView reloadData]; [refreshControl endRefreshing]; } 在iOS 6上,这意味着当你拉下桌子的时候,它会显示一个圆形的箭头,当你拉动的时候会拉长,拉到足够的时候会刷新。 现在,我看不到圆形箭头。 我错过了什么?

AVPlayer和Video的截图

我正在尝试在更大的视图中截取AVPlayer的截图。 我只想构build一个testing框架,所以私有APIs或任何方法都是好的,因为在发布到AppStore时框架将不会被包含。 我已经尝试过使用 UIGetScreenImage() :在模拟器上运行良好,但不在设备上 snapshotviewafterscreenupdates :它显示的视图,但我不能从中创build一个UIImage 。 drawViewInHierarchy和renderInContext将不适用于AVPlayer 我不想使用AVAssetGenerator或从video获取图像,很难得到一个好的坐标或video播放器作为其他视图的子视图

禁用uitableview突出显示,但允许select单个单元格

当你点击一个单元格的行被选中,并突出显示。现在我想要做的是禁用突出显示,但允许select。是否有解决方法。有问题的答案,但它禁用select和突出显示。

无法从其DataSource获取单元格

下面的代码有什么问题 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; cell.textLabel.text = @"hello"; return cell; } 和 -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return 2; } 但是我无法从dataSource中获取单元格 整个例外是 *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UITableView (<UITableView: 0x7ffe0b092800; frame = (0 97; 414 590); clipsToBounds = YES; autoresize = RM+BM; gestureRecognizers […]