我有一个UITableViewController,如果没有任何显示,它不会显示任何部分.我添加了一个标签,向用户表明此代码无法显示:
label = UILabel(frame: CGRectMake(20, 20, 250, 100))
label.text = "Nothing to show"
self.tableView.addSubview(label)
Run Code Online (Sandbox Code Playgroud)
但现在,我希望它在水平和垂直方向上居中.通常,我会在屏幕截图中选择突出显示的两个选项(加上高度和宽度的选项):
我尝试了以下代码来添加约束但应用程序崩溃时出现错误:
label = UILabel(frame: CGRectMake(20, 20, 250, 100))
label.text = "Nothing to show"
let xConstraint = NSLayoutConstraint(item: label, attribute: .CenterX, relatedBy: .Equal, toItem: self.tableView, attribute: .CenterX, multiplier: 1, constant: 0)
let yConstraint = NSLayoutConstraint(item: label, attribute: .CenterY, relatedBy: .Equal, toItem: self.tableView, attribute: .CenterY, multiplier: 1, constant: 0)
label.addConstraint(xConstraint)
label.addConstraint(yConstraint)
Run Code Online (Sandbox Code Playgroud)
错误:
When added to a view, the constraint's items must be descendants of that view (or …
Run Code Online (Sandbox Code Playgroud) 我是Android开发的新手.我的问题是,我是否使用AsyncTask来发出HTTP GET请求(JSON响应)?它是否正确?如果确实如此,有谁知道我在哪里可以看到这样的例子?如果没有,你能纠正我吗?谢谢!
在iOS 9中,Xcode SIZE检查器中有一个名为"Follows Readable Width"的选项,它将在视图的左/右侧放置填充,以便它不会伸展到目前为止(特别是在iPad上)以便使内容更容易阅读.
(当您在iPhone 6/6s plus上放置横向时,您可以在Twitter应用上看到此示例.)
无论如何,我似乎无法找到如何以编程方式执行此操作.在Xcode SIZE检查器中,它只是您设置的复选框.它显然是你可以在任何UIView或从它继承的任何东西上设置的布尔值.我似乎无法找到任何接近它的东西.
有人以编程方式设置此项吗?请参阅随附的屏幕截图.
哦,我可以很好地找到'保存Superview边距',而不是'跟随可读宽度'属性.
我正在研究从Web服务获取计划数据的复杂性.每20-30分钟(或手动),我正在安排WKRefreshBackgroundTask来执行此操作.
正如Apple所建议的那样,我希望操作系统能够通过后台处理这些数据NSURLSession
.
这是我用来下载我需要的数据的功能:
func scheduleURLSession()
{
print("\nScheduling URL Session...")
let backgroundSessionConfig:URLSessionConfiguration = URLSessionConfiguration.background(withIdentifier: NSUUID().uuidString)
backgroundSessionConfig.sessionSendsLaunchEvents = true
let backgroundSession = URLSession(configuration: backgroundSessionConfig)
let downloadTask = backgroundSession.downloadTask(with: URL(string: "https://www.myserver.com/somedata")!)
downloadTask.resume()
}
Run Code Online (Sandbox Code Playgroud)
关于这个的一些事情:
问题是,即使我正在调用resume()
该任务并允许它在完成时唤醒我的应用程序,它似乎也没有.
完成后,它应该回到WKExtensionDelegate处理程序:
func handle(_ backgroundTasks: Set<WKRefreshBackgroundTask>)
Run Code Online (Sandbox Code Playgroud)
作为一个WKURLSessionRefreshBackgroundTask
,但它没有.
我的代码与Apple的示例代码相同,然后创建另一个会话,但通过WKURLSessionRefreshBackgroundTask
标识符重新加入它.这是设置委托以处理下载数据的位置.检查代码:
func handle(_ backgroundTasks: Set<WKRefreshBackgroundTask>) {
for task in backgroundTasks {
switch task {
case let backgroundTask as WKApplicationRefreshBackgroundTask:
print("\nWatchKit - WKApplicationRefreshBackgroundTask")
// self.updateComplicationDataArrivalTimes(backgroundTask)
self.scheduleURLSession()
backgroundTask.setTaskCompleted()
case let snapshotTask as WKSnapshotRefreshBackgroundTask: …
Run Code Online (Sandbox Code Playgroud) nsurlsession watchkit watchos watchos-3 wkrefreshbackgroundtask
在Xcode 6中,您现在可以为选定和未选定状态设置选项卡项的图标.请参阅下图中的说明:
和
唯一的问题是SELECTED状态的图像没有显示.它只显示空白.其他人有这个问题吗?请查看结果的屏幕截图:
和
谢谢!!!
目前,我已经在我的 AppDelegate 中实现了这两个方法
func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool
Run Code Online (Sandbox Code Playgroud)
和
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool
Run Code Online (Sandbox Code Playgroud)
如果用户使用 Spotlight 的搜索结果打开我的应用程序,第一个将被调用,如果我的应用程序从 Apple Maps(因为它是一个路由应用程序)打开,则第二个将被调用。
我的问题是,UIViewController
从 AppDELEGATE转到特定位置的最佳方法是什么(无论用户处于何种视图都独立)?
我问的原因是因为目前我正试图根据用户所在的位置手动导航到它。例如,它们可能位于以UIViewController
模态显示的a中(然后需要关闭),或者它们可能位于 a 的深处,UINavigationController
然后应用程序需要在其中调用popToRootViewController
.
这样做的话,代码会变得杂乱无章,而且似乎无法正常工作。这样做似乎也不正确,因为它非常脆弱。
uitabbarcontroller uiviewcontroller ios appdelegate nsuseractivity
我正在尝试为我准备发布的 macOS 应用程序制作一本 Apple 帮助手册。然而,我正在尝试让锚点在我的 HTML 中工作。根据苹果的定义:
“锚点允许您唯一地标识帮助书中的主题。当用户点击指向锚点的链接时,帮助查看器会加载包含该锚点的页面。...您还可以使用锚点从应用程序中加载锚定页面,方法是:调用 NHelpManager 方法 openHelpAnchor:inBook: ...”
苹果的例子:<a name="ArrivalTimesUsingStopID"></a>
在我的 Apple 中,我有一个 NSAlert,它具有以下代码来显示帮助按钮,以便当您单击它时,它会打开指定的锚字符串。
alert.showsHelp = true
alert.helpAnchor = NSHelpManager.AnchorName(stringLiteral: "ArrivalTimesUsingStopID")
Run Code Online (Sandbox Code Playgroud)
运行代码确实会显示帮助按钮,Mac 帮助也会打开,但出现错误,指出找不到指定的内容。不知道为什么锚点不起作用,因为如果我转到帮助菜单并从那里打开它,我可以访问帮助手册。
此外,苹果公司的文件指出:
NSAlert、SFChooseIdentityPanel、SFCertificatePanel 类提供对话框的帮助按钮。要显示此类帮助按钮并将其链接到帮助书中的锚点,请在这些类中使用 setShowsHelp: 和 setHelpAnchor: 方法。
以及这些属性的文档NSAlert
:
-setShowsHelp:YES 将帮助按钮添加到警报面板。当按下帮助按钮时,首先会咨询代表。如果委托未实现alertShowHelp:或返回NO,则使用nil book和-setHelpAnchor:指定的锚(如果有)调用-[NSHelpManager openHelpAnchor:inBook:]。如果委托返回 NO 并且没有设置帮助锚点,则会引发异常。
...所以我知道我正确使用了这两个。
我还了解到,每次更新 Apple 帮助手册 HTML 文档时都需要创建一个 .helpindex 文件。我正在使用“Help Indexer.app”,它位于developer.apple.com 上的其他Xcode 工具中。我确保:
<meta name="ROBOTS" content="ANCHORS">
标头中,因此锚点会被索引。但即使完成了所有这些,我仍无法将 Apple 帮助手册打开到正确的锚点,甚至无法打开 Apple 帮助手册的标题页。
从头到尾多次,我无法找到解决方案或在线任何地方。 …
我目前正在使用最新版本的Xcode(v5.0.2),我的应用程序的部署目标是iOS 7.0.
我的问题是,无论在哪个类中,我都可以在标题中设置属性
例如: @property (strong, nonatomic) NSString *firstName;
在实现文件中,我可以很好地合成它
例如: @synthesize firstName;
我的问题是我不能_firstName
在代码中使用.我在其他项目中使用了自动ivars就好了(属性名称以下划线开头).
Xcode抱怨并告诉我将其更改为没有下划线的属性名称.我不明白为什么这个项目不会自动为我创建带有下划线的ivars.我知道在旧版本的Objective-C中,你必须自己做,但你不适用于iOS 7.
谢谢!
我想,既然"Watch App"是同一iOS应用程序中的一个包,我应该可以访问Apple Watch App中的NSUserDefaults.这不是这样吗?
我似乎无法从我的iOS获取NSUserDefaults值(我确保数据因为它在iOS应用程序中正常加载).
当我在Apple Watch应用程序中运行它时,它是空的.我是否无法访问与iOS父应用程序相同的NSUserDefaults值?
我有一个包含NSMutalArray的自定义类.这个可变数组是我想要在Watch App的Table中显示的.包含NSMutableArray的同一个类还具有向NSUserDefaults保存/加载数据的功能.它在我的iOS应用程序中工作正常但只是不加载Apple Watch应用程序中的数据.
我在这里做错了什么或者我不知道什么?
这是班级:
请记住,我也将它用作单例对象.它通过首先将自身转换为NSData将其数据保存到NSUserDefaults中 - 这就是为什么你会在这个类中看到你可以忽略的额外函数.
#import "Teacher.h"
#import "Course.h"
@implementation Teacher
static Teacher *sharedInstance = Nil;
+ (Teacher *)sharedInstance
{
@synchronized(self)
{
if(!sharedInstance)
{
sharedInstance = [[self alloc] init];
}
}
return sharedInstance;
}
- (id)init
{
self = [super init];
if (self)
{
_classes = [[NSMutableArray alloc] init];
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)coder
{
[coder encodeObject:_classes forKey:@"classes"];
}
- (id)initWithCoder:(NSCoder *)coder
{
self = [super init];
if …
Run Code Online (Sandbox Code Playgroud) 我有一个用Swift编写的函数.我希望完成块返回一个布尔值.我该怎么做呢?我正在使用Grand Central Dispatch.
func myFunc() -> Bool
{
var success:Bool = false
// code here
dispatch_async(dispatch_get_main_queue(), {
return success
)}
)}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
ios ×8
xcode ×6
swift ×3
objective-c ×2
watchkit ×2
android ×1
appdelegate ×1
appkit ×1
apple-help ×1
apple-watch ×1
autolayout ×1
concurrency ×1
httprequest ×1
ios7 ×1
ios9 ×1
macos ×1
nsalert ×1
nsurlsession ×1
storyboard ×1
synthesize ×1
uitabbaritem ×1
uiview ×1
watchos ×1
watchos-3 ×1