小编Chr*_*lli的帖子

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

我有一个UITableView,有几个不同的部分.一个部分包含将在用户将文本键入UITextView时调整大小的单元格.另一部分包含呈现HTML内容的单元格,计算高度相对较高.

现在当用户输入UITextView时,为了让表视图更新单元格的高度,我打电话

[self.tableView beginUpdates];
[self.tableView endUpdates];
Run Code Online (Sandbox Code Playgroud)

但是,当我真的只需要更新输入的单个单元格时,这会导致表重新计算表中每个单元格的高度.不仅如此,它不是使用重新计算估计的高度,而是要求每个单元格,甚至是那些未被显示的单元格.tableView:estimatedHeightForRowAtIndexPath:tableView:heightForRowAtIndexPath:

有没有办法让表格视图更新单个单元格的高度,而不做所有这些不必要的工作?

更新

我还在寻找解决方案.正如所建议的那样,我已经尝试过使用reloadRowsAtIndexPaths:,但看起来并不会起作用.reloadRowsAtIndexPaths:甚至单行调用仍将导致heightForRowAtIndexPath:每行调用,即使cellForRowAtIndexPath:只调用您请求的行.实际上,heightForRowAtIndexPath:对于表格单元格中的每一行,都会在任何时候插入,删除或重新加载行.

我还尝试将代码willDisplayCell:forRowAtIndexPath:插入到单元格出现之前计算高度.为了使其工作,我需要强制表视图在我进行计算后重新请求行的高度.不幸的是,调用[self.tableView beginUpdates]; [self.tableView endUpdates];from willDisplayCell:forRowAtIndexPath:会导致UITableView内部代码中的索引超出范围异常.我猜他们不指望我们这样做.

我不禁觉得这是SDK中的一个错误,响应[self.tableView endUpdates]它不会调用estimatedHeightForRowAtIndexPath:不可见的单元格,但我仍然试图找到某种解决方法.任何帮助表示赞赏.

objective-c uitableview ios

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

如何在UICollectionViewCell上显示标准复选标记?

我正在设计一个带有UICollectionView的iOS应用程序,我希望用户能够在此视图中选择多个项目.似乎Apple在这种情况下使用了标准的复选标记.例如,在下图中,您可以在共享表中选择多张照片时看到它.

根据文档,您负责更新单元格的UI以反映其选择状态.我知道在UITableViewCell上你可以设置accessoryType属性来添加一个复选标记,但我似乎找不到任何UICollectionViewCell的等价物.

有没有Apple提供的方式在我的应用程序中使用此复选标记,除了试图从屏幕截图中删除此图标?

在此输入图像描述

cocoa-touch ios uicollectionview uicollectionviewcell

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

如何检测x64 Windows上是否安装了32位Java,仅查看文件系统和注册表?

我需要确定特定系统是否安装了32位Java.我正在进行远程查询,只允许我访问文件系统和注册表,因此我无法尝试运行java.exe或运行任何Java代码.

我还想确保我检测到IBM和Sun Java以及任何其他发行版,这些发行版似乎将文件放在文件系统和注册表中的不同位置.

我提出的最好的方法是检查C:\ Windows\SysWOW64\java.exe.这是测试32位Java存在的可靠方法,还是某些版本不会将java.exe放在该文件夹中?

更新:我仍然在寻找更加健全的答案.为了清楚起见,我无法访问命令提示符.此外,无论发布者是谁,安装了什么版本号,以及用户选择安装它的路径,我都想检测Java.

C:\ Windows\SysWOW64\java.exe似乎符合这些要求,但是我希望得到更多知识渊博的人的确认,即每个Java安装程序确实会将该可执行文件放在那里.

java 64-bit 32-bit

21
推荐指数
4
解决办法
9万
查看次数

有没有搜索短文件名的Windows FindFirstFile/FindNextFile API的替代品?

我正在使用Windows API调用FindFirstFileFindNextFile来搜索与目录中某个通配符字符串匹配的文件.例如,我可能想要查找目录中的所有XML文件,因此我使用模式"*.xml"进行搜索.

我遇到的问题是,如果我正在搜索一个3个字母的扩展名,并且文件的扩展名以3个字母的扩展名开头,那么即使扩展名包含更多字符,我的搜索也会收到它.第一个3.例如,如果我的文件名为somelongname.xmlaaaa,搜索"*.xml"将会获取该文件.该文件的简称是somelo~1.xml,它匹配我的通配符字符串.

我可以做自己的通配符匹配来解决这个问题,但可能是Windows API能够比我更有效地做到这一点,我的代码会更简单.据我所知,没有办法强制这些函数忽略短名称.是否有任何API Windows公开此功能?

c c++ windows filesystems winapi

11
推荐指数
2
解决办法
3201
查看次数

如何创建一个将在iPad上使用popover并推送到iPhone上的导航堆栈的segue?

在我的应用程序中,某些视图控制器在iPad上(或者更具体地说,是一个常规的水平尺寸类)将它们作为弹出窗口显示是有意义的,但是在iPhone(或紧凑的水平尺寸类)上推送它是有意义的他们到导航堆栈上.有一种优雅的方式来支持这个吗?默认情况下,如果我使用"Present as Popover"segue,它将在iPhone上以模态方式显示,这不是我想要的.

我找到了一种方法来获得我想要的行为,但它很难看,而且容易出错.我根据我目前所处的大小类选择两个不同的segue.为了支持iOS 9多任务,我实现[UIViewController willTransitionToTraitCollection:withTransitionCoordinator]并在弹出窗口和导航控制器之间手动移动视图控制器(这部分看起来特别容易出错).

似乎应该有一些简单的方法来实现自定义segue来处理这个,或者某种自定义自适应表示控制器,但我还是无法绕过它.有人做过这样的成功吗?

popover ipad ios size-classes adaptive-layout

8
推荐指数
1
解决办法
1141
查看次数

有没有办法在Interface Builder中为本地化字符串添加注释?

在代码中,NSLocalizedString宏允许您提供描述性注释以及字符串,因此您的翻译人员具有编写翻译的必要上下文.但是,我没有看到任何方法与我的故事板中的字符串一起提供等效注释.相反,xliff文件包含如下注释:

Class = "NSTextFieldCell"; title = "Created"; ObjectID = "1u4-pn-J7a";

不是很有用.有什么方法可以让我的译员更好地解释这些字符串的用途/位置吗?

xcode cocoa localization interface-builder internationalization

8
推荐指数
1
解决办法
543
查看次数

状态栏背景在iOS 11上隐藏时消失

从iOS 11开始,当我解雇时,我的应用程序中的状态栏是行为不端的.状态栏被取消时,状态栏的背景变为清晰状态.它在iOS 10中没有这样做.

状态栏错误

我在一个非常简单的应用程序中重新创建了这个问题,我已经在Github上发布了:TestStatusBarBug.以下是所有相关代码:

AppDelegate.m

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [[UINavigationBar appearance] setBarTintColor:[UIColor grayColor]];
    return YES;
}

@end
Run Code Online (Sandbox Code Playgroud)

ViewController.m

#import "ViewController.h"

@interface ViewController () {
    BOOL _statusBarHidden;
}

@end

@implementation ViewController

-(BOOL)prefersStatusBarHidden
{
    return _statusBarHidden;
}

-(UIStatusBarAnimation)preferredStatusBarUpdateAnimation
{
    return UIStatusBarAnimationSlide;
}

- (IBAction)toggleStatusBar {
    _statusBarHidden = !_statusBarHidden;

    [UIView animateWithDuration:0.35 animations:^{
        [self setNeedsStatusBarAppearanceUpdate];
    }];
}

@end
Run Code Online (Sandbox Code Playgroud)

还有其他人遇到过这个问题吗?有修复或解决方法吗?

statusbar uinavigationcontroller ios uistatusbar ios11

7
推荐指数
1
解决办法
711
查看次数

Jenkins Blue Ocean在现有Jenkins实例上初始安装后未加载

我刚刚在我已使用多年的现有Jenkins实例上安装了Blue Ocean.登陆页面没有加载,我收到以下错误,我没有成功找到SO或其他谷歌搜索的答案.我在Jenkins构建2.107.3,Blue Ocean 1.6.1.

我能够成功创建一个新的管道,但当我回到这个页面时,它永远不会完成加载.

有没有人遇到过这个错误,或者有关于如何进行调试的建议?

Jenkins错误的屏幕截图

blueocean-core-js.js:57883 Error fetching page TypeError: Cannot read property 'self' of undefined at ActivityService.bunkerKey (blueocean-core-js.js:57207) at ActivityService.setItem (blueocean-core-js.js:57250) at executeAction (blueocean-core-js.js:40729) at ActivityService.res (blueocean-core-js.js:40701) at PipelineService._this.bunkerMapper (blueocean-core-js.js:58214) at PipelineService.setItem (blueocean-core-js.js:57249) at executeAction (blueocean-core-js.js:40729) at PipelineService.res (blueocean-core-js.js:40701) at blueocean-core-js.js:57268 at Array.map (<anonymous>) at PipelineService.setItems (blueocean-core-js.js:57267) at blueocean-core-js.js:57867 at executeAction (blueocean-core-js.js:40729) at res (blueocean-core-js.js:40701)

jenkins jenkins-pipeline jenkins-blueocean

7
推荐指数
1
解决办法
1968
查看次数

iOS 13 GM 中的文本转语音 API (AVSpeechSynthesisVoice) 被破坏

更新

我在另一台设备上安装了 iOS 13 GM,没有遇到此问题。所以我不再确定这是否是 iOS 13 GM 特有的,或者是我安装它的方式的问题。在第一台设备(iPhone X)上,我进行了升级(通过 iTunes 中的“选项键 + 检查更新按钮”)。在第二台设备(iPhone SE)上,我进行了完整恢复。尚不确定是什么导致它进入这种状态。

原始问题

AVSpeechSynthesisVoice.speechVoices()报告称,当我在装有 iOS 13 GM 的设备上运行它时,没有可用的语音。事实上,当我尝试使用AVSpeechSynthesisVoice(identifier:)它加载语音时,它总是返回零。它在模拟器中工作。我不认为这是以前的测试版的问题,而且它似乎适用于 iOS 13.1 beta 2 和 3。

有没有人遇到过这种情况,并想出任何解决方法?我没有看到任何有意更改此行为的文档,因此我怀疑这是一个错误。我打算提交雷达。但这对于即将发布的 iOS 13 来说并没有什么帮助。

在新创建的单视图项目中可以重现此行为,并将以下简单viewDidLoad功能添加到包含的视图控制器中。

override func viewDidLoad() {
    super.viewDidLoad()

    let voices = AVSpeechSynthesisVoice.speechVoices()
    print("Voice Count: \(voices.count)")
}
Run Code Online (Sandbox Code Playgroud)

输出很长:

2019-09-11 10:43:09.370992-0400 SpeechTest[1617:412065] Creating client/daemon connection: C591307C-313E-4B5F-91A8-184B7E662819
2019-09-11 10:43:09.396250-0400 SpeechTest[1617:412065] Got the query meta data reply for: com.apple.MobileAsset.MacinTalkVoiceAssets, response: 0
2019-09-11 10:43:09.397519-0400 SpeechTest[1617:412065] Consumed extension
2019-09-11 10:43:09.401982-0400 SpeechTest[1617:412065] Got …
Run Code Online (Sandbox Code Playgroud)

avfoundation avspeechsynthesizer avspeechutterance ios13

5
推荐指数
1
解决办法
4402
查看次数

是否可以通过 xcrun simctl 与克隆的 iOS 模拟器进行交互?

当我在多个模拟器上并行运行 UI 测试时,克隆的模拟器似乎对xcrun simctl.

运行时xcrun simctl list,源模拟器出现,但处于“关闭”状态:

4 Inch Snapshots - en-US (0) (3334A5D1-A4EC-41ED-AB10-55495B4BE329) (Shutdown)

当我尝试对“启动”设备运行任何命令时,它声称没有模拟器在运行:

xcrun simctl status_bar booted override --time "2007-01-09T09:41:00-05:00"
No devices are booted.
Run Code Online (Sandbox Code Playgroud)

有什么方法可以针对这些克隆模拟器吗xcrun simctl

ios-simulator xcrun simctl xcode-ui-testing

4
推荐指数
1
解决办法
1017
查看次数

UISearchBar提示符在导航栏中没有动画

更新03/25/14

看起来缺少动画是iOS 7.0中的一个错误,并且已经在iOS 7.1中得到修复.

原始问题

通常,当您在iOS 7中的搜索栏内点击时,它会有一个漂亮的小动画,其中放大镜和"搜索"文本从搜索栏的中间滑动到左侧.但是,如果我将搜索栏放在导航栏中而不是在表格视图中,则它不再是动画.相反,放大镜和"搜索"文本会立即跳转到搜索栏的左侧.

使用Apple的UISearchBar示例项目,您可以轻松地看到这一点.打开故事板.displaysSearchBarInNavigationBar在Search Display Controller上添加一个布尔运行时属性,并选中它创建的复选框.然后,将搜索栏向上移动到树中的一个级别,使其位于表视图之外.运行项目,搜索栏现在应该在导航栏中.请注意,当您点按搜索栏时,它不会设置动画.

有没有人成功地将UISearchBar放在iOS 7的导航栏中,并让它正常运行?

为了清楚起见,我的问题是当用户点击搜索栏时,下面的第一个和第二个屏幕截图之间没有搜索栏的动画.

之前 后

iphone animation uitableview uisearchbar ios

3
推荐指数
1
解决办法
3879
查看次数

如何在应用程序启动时自动运行我的框架代码?

我正在构建一个将包含在其他应用程序中的框架.我有一些代码需要在应用程序首次启动时运行.

许多框架要求开发人员在开始时包含一行[UIApplicationDelegate application:didFinishLaunchingWithOptions:]来初始化他们的框架.但是,我注意到Reveal的框架不需要这个.只需在项目中包含框架即可与您的应用程序集成,并在您的应用程序中启动其Web服务器.

他们如何做到这一点?

cocoa-touch ios ios-frameworks

3
推荐指数
1
解决办法
907
查看次数

为什么我的CSV文件中的多行单元格在Excel的每一行末尾都显示一个问号?

我目前正在开展一个项目,我们希望允许用户将其数据导出为CSV.我们提供的一些数据对于单个单元格具有多个值,因此我们使用标准CSV方法将每个值放在其自己的行上:

Column A, Column B, Column C
Value A, "Value B1
Value B2", Value C
Run Code Online (Sandbox Code Playgroud)

大部分时间这种方法都可以正常工作,但有些人报告说,当他们在Excel中加载文件时,在每行末尾会出现一个小字号.为什么会这样?

csv excel newline

2
推荐指数
1
解决办法
3099
查看次数