小编Mar*_*man的帖子

以编程方式添加CenterX/CenterY约束

我有一个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)

xcode ios autolayout nslayoutconstraint swift

73
推荐指数
5
解决办法
8万
查看次数

Xcode故事板显示UI元素周围的蓝框.我怎么关掉这个?

老实说,我不确定我在这里做了什么.我以前从未见过这个.Xcode现在在我的Storyboard中的每个UI元素周围显示蓝框.这适用于其中的所有视图控制器.如何撤消或修复此问题?

请看下面的截图:

在此输入图像描述

xcode interface-builder storyboard ios

16
推荐指数
2
解决办法
6435
查看次数

Android:AsyncTask发出HTTP GET请求?

我是Android开发的新手.我的问题是,我是否使用AsyncTask来发出HTTP GET请求(JSON响应)?它是否正确?如果确实如此,有谁知道我在哪里可以看到这样的例子?如果没有,你能纠正我吗?谢谢!

android httprequest android-asynctask

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

iOS 9 - Xcode:以编程方式"遵循可读宽度"

在iOS 9中,Xcode SIZE检查器中有一个名为"Follows Readable Width"的选项,它将在视图的左/右侧放置填充,以便它不会伸展到目前为止(特别是在iPad上)以便使内容更容易阅读.

(当您在iPhone 6/6s plus上放置横向时,您可以在Twitter应用上看到此示例.)

无论如何,我似乎无法找到如何以编程方式执行此操作.在Xcode SIZE检查器中,它只是您设置的复选框.它显然是你可以在任何UIView或从它继承的任何东西上设置的布尔值.我似乎无法找到任何接近它的东西.

有人以编程方式设置此项吗?请参阅随附的屏幕截图.

哦,我可以很好地找到'保存Superview边距',而不是'跟随可读宽度'属性.

在此输入图像描述

xcode uiview ios swift ios9

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

尝试在watchOS中进行后台刷新时,不会调用WKURLSessionRefreshBackgroundTask

我正在研究从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)

关于这个的一些事情:

  1. 它在我安排时会被调用.我在控制台中看到了它的print语句.
  2. 它与Apple的例子几乎完全相同.
  3. 我省略了这个网址.同样的URL在iOS/watchOS应用程序中工作得很好,所以没有任何问题.

问题是,即使我正在调用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

7
推荐指数
2
解决办法
2017
查看次数

标签栏项目 - 选定/未选中图标

在Xcode 6中,您现在可以为选定和未选定状态设置选项卡项的图标.请参阅下图中的说明:

选定图像 - 选择标签栏项目时显示的图像.

图像 - 用于表示项目的图像.

唯一的问题是SELECTED状态的图像没有显示.它只显示空白.其他人有这个问题吗?请查看结果的屏幕截图:

REPORT选项卡是UNSELECTED

REPORT选项卡是SELECTED

谢谢!!!

xcode interface-builder uitabbarcontroller uitabbaritem ios

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

从 AppDelegate 方法导航到特定的视图控制器

目前,我已经在我的 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

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

macOS Apple 帮助创作 - 锚点

我正在尝试为我准备发布的 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 工具中。我确保:

  • 我可以选择设置索引所有锚点。
  • 任何带有锚点的 HTML 页面都位于<meta name="ROBOTS" content="ANCHORS">标头中,因此锚点会被索引。
  • 我的 Apple 帮助手册 plist 文件正确指向由“Help Indexer.app”创建的 .helpindex 文件。

但即使完成了所有这些,我仍无法将 Apple 帮助手册打开到正确的锚点,甚至无法打开 Apple 帮助手册的标题页。

我已阅读 https://developer.apple.com/library/archive/documentation/Carbon/Conceptual/ProvidingUserAssitAppleHelp/user_help_intro/user_assistance_intro.html#//apple_ref/doc/uid/TP30000903-CH204-CHDIDJFE

从头到尾多次,我无法找到解决方案或在线任何地方。 …

macos nsalert appkit apple-help

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

iOS 7 Dev - @synthesize不会自动创建ivars

我目前正在使用最新版本的Xcode(v5.0.2),我的应用程序的部署目标是iOS 7.0.

我的问题是,无论在哪个类中,我都可以在标题中设置属性

例如: @property (strong, nonatomic) NSString *firstName;

在实现文件中,我可以很好地合成它

例如: @synthesize firstName;

我的问题是我不能_firstName在代码中使用.我在其他项目中使用了自动ivars就好了(属性名称以下划线开头).

Xcode抱怨并告诉我将其更改为没有下划线的属性名称.我不明白为什么这个项目不会自动为我创建带有下划线的ivars.我知道在旧版本的Objective-C中,你必须自己做,但你不适用于iOS 7.

谢谢!

objective-c ios synthesize ios7

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

Apple Watch,WatchKit和NSUserDefaults

我想,既然"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)

xcode objective-c ios apple-watch watchkit

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

Swift:在GCD完成块中返回布尔值

我有一个用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)

谢谢!

concurrency xcode grand-central-dispatch ios swift

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