小编Jon*_*han的帖子

在导航栏中显示搜索栏而不在iOS 11上滚动

我将UISearchController附加到navigationItem.searchControlleriOS 11上的UITableViewController 的属性.这很好用:我可以使用漂亮的iOS 11风格的搜索栏.

但是,我想在发布时使搜索栏可见.默认情况下,用户必须在表格视图中向上滚动才能看到搜索栏.有谁知道这有可能吗?

在此输入图像描述 在此输入图像描述

左:启动后的默认情况.右:搜索栏可见(通过向上滚动).我希望在发布后可以看到搜索栏,如右侧屏幕截图所示.

我已经发现通过将hidesSearchBarWhenScrolling导航项的属性设置为false 可以使搜索栏可见.但是,这会导致搜索栏始终可见 - 即使向下滚动 - 这也不是我想要的.

uinavigationitem ios uisearchcontroller

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

依靠NSUbiquitousKeyValueStore存储基本数据是否安全?

我了解到,即使没有设置iCloud帐户NSUbiquitousKeyValueStore,也始终可用.这让我相信我可以安全地将基本数据存储在其中,而无需保留副本.NSUserDefaults

但是,在他们的文档中,Apple说如下:

避免将此类用于离线时应用程序行为必不可少的数据; 相反,将这些数据直接存储到本地用户默认数据库中.

我是否忽略了在不使用NSUserDefaults(或其他离线商店)作为备份时可能出现的问题?或者Apple是否过度保护,依赖它是否安全NSUbiquitousKeyValueStore

nsuserdefaults ios icloud nsubiquitouskeyvaluestore

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

iPad上的jQuery Mobile非常慢

我正在使用客户端的jQuery Mobile和服务器端的PHP和MySQL开发Web应用程序.该应用程序适用于Safari,Chrome和Firefox等桌面浏览器.但是,在iPad上 - 应用程序在主屏幕上作为Web剪辑打开 - 应用程序执行得更糟.滚动工作正常,但点击从服务器加载页面的链接非常慢.

iPad屏幕的记录显示(例如)点击之后需要0.3秒才会突出显示被点击的元素并显示加载程序.从开始起1.0秒后,打开/显示打开页面的下半部分(在加载器下方).然后在显示页面的上半部分之前需要另外0.6秒,这使得加载页面所需的总时间为1.6秒.可在此处找到显示此过程的视频(以原始速度的25%播放).

加载过程

我知道加载页面(通过WiFi)需要一些时间,但我不明白为什么渲染页面的上半部分需要额外的0.6秒.假设页面在1.0秒后完全加载(因为页面的下半部分已经显示),我认为这也花费了相当多的时间,因为在我的Mac上Safari只需要大约0.5秒.但这可能是因为我的iPad处理器速度较慢以及WiFi连接滞后.

希望有人知道一些(客户端)优化,以使应用程序更快地执行(或感觉).我已经在jQuery Mobile中禁用了动画,我将尝试自己优化服务器端.


也许这些事情很重要:

  • 我从服务器返回的所有页面都有一个<head>带有多个引用样式表和脚本的完整页面.jQuery Mobile是否忽略了<head>这种处理能力?
  • 我在大多数页面上都有一个固定的页眉和页脚.我正在用它<div data-role="…" data-position="fixed" data-id="…" data-tap-toggle="false">来完成这件事.页眉和页脚也包含在所有页面中.
  • 大多数标题左侧有一个按钮(<a data-role="button">标签),中间有一个标题(<h1>标签),右侧有一个控制组(<div data-role="controlgroup">),包含两个按钮(<a data-role="button">).
  • 标题中的一个按钮设置为将页面预取到它链接的位置(<a href="…" data-role="button" data-rel="dialog" data-prefetch>).此按钮包含在每个页面中,但每个页面href上的链接相同.这可能是......?
  • 所有页脚都有一个<div data-role="navbar">带有多个项目的navbar()(<li><a>).
  • 有些页面是带有过滤功能的列表视图(<ul data-role="listview" data-filter="true">).目前只包含几个项目(<li><a>最多5个)和列表分隔符(<li data-role="list-divider">).
  • 其他页面是<form>包含列表视图的表单()(),其中包含<ul data-role="listview" data-inset="true">多个表单字段(<li data-role="fieldcontain">).

嗯,这些都是我能想到的"特殊"事物.如果您需要了解更多信息或查看一些源代码,请告诉我们.

performance mobile-safari jquery-mobile

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

"iOS 6.0 Simulator"在Xcode 5.0.2中不可见/可安装

今天我在Mac上彻底安装了Mavericks(10.9.1).之后,我从Mac App Store安装了Xcode 5.0.2.当Xcode完成安装后,我打开了Preferences> Downloads来安装额外的组件和文档.奇怪的是,iOS 6.0 Simulator没有在那里列出:

Xcode中的下载"">

运行iOS模拟器时,我只能选择运行7.0.3或6.1,所以6.0还没有安装.一周前,我在另一台Mac上安装了Xcode(也运行了Mavericks); 那时使用相同的方法安装iOS 6.0模拟器没问题.

我已经尝试删除该~/Library/Caches/com.apple.dt.Xcode/文件夹,该文件夹似乎包含缓存的下载和元数据.但是,这没有效果.当然,我已经多次点击"立即检查并安装"按钮并重新启动Xcode几次,都没有效果.

有没有人知道如何安装iOS 6.0模拟器?

xcode ios-simulator xcode5 osx-mavericks ios6.0

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

Java警告:[未选中]未经检查的转换

我有以下(部分)课程:

public class Graph<O> {
    private ArrayList<Edge> edges;

    public ArrayList<Edge> getEdges() {
        return edges;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,当在getEdges()其他地方调用方法并将结果存储在类型的变量中时ArrayList<Edge>,我得到warning: [unchecked] unchecked conversion:

OtherFile.java:101: warning: [unchecked] unchecked conversion
        ArrayList<Edge> edges = graph.getEdges();
                                              ^
  required: ArrayList<Edge>
  found:    ArrayList
Run Code Online (Sandbox Code Playgroud)

我已经看过关于这个警告的其他多个问题,但我无法弄清楚我做错了什么.getEdges()返回ArrayList<Edge>,为什么我不能将其结果存储在那个确切类型的变量中?

java generics compiler-warnings

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