小编atx*_*txe的帖子

UIPageViewController:返回当前可见视图

你怎么知道里面显示的当前页面/视图是UIPageViewController什么?

我已经覆盖了viewDidAppear我的子视图的方法,因此他们在viewDidAppear方法中向父视图发送了一个id .

但问题是:我无法可靠地将该id用作显示页面的id.因为如果用户转动页面但中途决定停止转动并将页面放回,viewDidAppear则已经被调用.(视图在卷曲页面后面可见).

也许我应该只在当前视图消失的情况下切换到新的id.但我想知道是否有更简单的方法来返回当前可见的视图?

iphone ios uipageviewcontroller

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

如何使用Swift中的Objective-C#define

我正在迁移一个UIViewController类,用Swift训练一下.我通过桥接头成功使用Objective-C代码,但我需要导入包含#define指令的常量文件.

我在使用Swift与Cocoa和Objective-C(简单宏)中看到了以下内容:

简单的宏

在通常使用该#define指令在C和Objective-C中定义基本常量的地方,在Swift中使用全局常量代替.例如,常量定义#define FADE_ANIMATION_DURATION 0.35可以在Swift中更好地表达let FADE_ANIMATION_DURATION = 0.35.因为简单的类似常量的宏直接映射到Swift全局变量,所以编译器会自动导入在C和Objective-C源文件中定义的简单宏.

所以,似乎有可能.我已经将包含我的常量的文件导入到桥接头中,但是我的.swift文件没有可见性,无法解析.

我该怎么做才能让我的常量对Swift可见?

更新:

它似乎与NSString常量一起使用,但不适用于布尔值:

#define kSTRING_CONSTANT @"a_string_constant" // resolved from swift
#define kBOOL_CONSTANT YES // unresolved from swift
Run Code Online (Sandbox Code Playgroud)

macros objective-c swift

67
推荐指数
3
解决办法
9万
查看次数

如何获得CGPath的CGPoint

如何获得CGPoint包含给定CGPath(CGMutablePathRef)中包含的所有(s)的数组?

iphone objective-c ios

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

我应该把电话放到[FBSettings publishInstall:appId]

我正在考虑整合支持跟踪Facebook的新移动应用广告.

我在这里阅读了教程:https: //developers.facebook.com/docs/tutorials/mobile-app-ads/

它说:

当您的应用首次由用户打开时,请包含以下代码

[FBSettings publishInstall:appId];
Run Code Online (Sandbox Code Playgroud)

所以第一个问题是 - 如果安装是从Facebook驱动的话,我在哪里放置它以便它只调用调用?我不希望FB能够在应用程序商店中找到我自己的应用程序.

我是否需要手动跟踪我之前是否为此特定用户调用了publishInstall?(前言句子暗示了这一点 - 但是publishInstall的SDK文档暗示了这一点).

更令人困惑的是SDK FBSettings参考包括shouldAutoPublishInstall默认值YES.这表明除了集成SDK之外我不需要做任何事情.那么教程为什么不提这个呢?

我假设appId是关联的Facebook appId(而不是App Store App ID).文档中也不清楚这一点.

sdk facebook ios

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

检测应用程序打开的UILocalNotification

在某些情况下,我的iOS应用程序触发多个UILocalNotification同一时间.我想决定UILocalNotification用户点击了哪个.当用户点击某个UILocalNotification应用程序处于非活动状态或后台时.问题是该方法

func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) {
Run Code Online (Sandbox Code Playgroud)

每次触发都会UILocalNotification被调用.因此,当应用程序变为活动状态时,此方法会被多次调用,因为我收到了多个UILocalNotification.有没有办法确定UILocalNotification应用程序打开的原因是什么?由于UILocalNotification应用程序处于非活动状态或后台时已收到所有应用程序,因此检查applicationState 不起作用.

非常感谢!

编辑:作为一个例子:当您从两个不同的组A和B收到WhatsApp消息并从组A中选择推送通知时,该应用程序将在应用程序打开后立即显示.WhatsApp和我的用例之间的区别在于我有本地通知.

notifications ios uilocalnotification swift

15
推荐指数
2
解决办法
1714
查看次数

有没有办法在模拟器中运行玻璃器皿?

今天Google刚刚发布了Google Glass 的GDK Sneak Peak.我试图运行他们在GitHub中托管的样本但没有成功:

我的目标是针对Android 4.0.3 Glass Development Kit Sneaky Preview并试图在AVD中运行它,并使用以下其他规格来定位它:

  • 640x360 hdpi
  • 对于CPU,我尝试了ARM和Intel Atom

当我运行应用程序并显示选择设备的对话框时,我确实看到虚拟设备不兼容.

在此输入图像描述

如果我跳过它并尝试运行它,我会看到以下错误输出:

Installing com.google.android.glass.sample.compass
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/com.google.android.glass.sample.compass"
pkg: /data/local/tmp/com.google.android.glass.sample.compass
Failure [INSTALL_FAILED_MISSING_SHARED_LIBRARY]
Run Code Online (Sandbox Code Playgroud)

我试图强制不要求玻璃库(设置要求false)在AndroidManifest.xml:

<uses-library
    android:name="com.google.android.glass"
    android:required="false" />
Run Code Online (Sandbox Code Playgroud)

......但显然运行不正常,它以叠加方式显示:

在此输入图像描述

我也尝试过使用Genymotion,但它也没有运行.

有没有办法在模拟器中成功运行玻璃器皿?

编辑:

添加gdk.jar作为库不起作用.

android google-glass google-gdk

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

将数据存储到NSUserDefaults

在我的iPhone应用程序中,我有一个名为的类Contact,它包含一个ABRecordRef用作特定联系人的引用.

我需要存储这些联系人的组NSUserDefaults,但由于Contact是自定义类,所以事情并没有很好.

在这种情况下该怎么做的任何想法?

iphone nsuserdefaults ipad ios abrecordref

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

在UITableViewCell的范围之外绘图

我试图在我的所有细胞中添加一个"便利贴"图像UITableView.这个图像需要(部分地)绘制出边界UITableViewCell.

当设置clipToBoundsNO,该图像确实是该单元的边界之外绘制.但是,(相当逻辑上)图像是在UITableView分隔线和节标题下面绘制的.

我想我可以尝试将图像直接添加到UITableView所有其他元素之上.但是,尝试确定每个单元格的确切位置可能会变得相当复杂UITableView,因为我正在使用节标题.

所以,在开始这段旅程之前,我想知道是否有更简单的解决方案.

uitableview ios cliptobounds

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

Objective C阻止作为异步回调和坏访问

我有一个严重的疑问.假设以下场景:

  1. 你有一个UIViewController屏幕.
  2. 例如,应用程序使用块作为回调启动后端调用
  3. 您使用"自我"代理,以防止保留周期.
  4. 用户点击"返回",然后UIViewController获取dealloc'ed.
  5. 迟早,回调块会被执行>> BAD ACCESS

iOS 4的之前,我们通过设置来处理这种情况nildelegate的...财产我不知道,什么类,你都用上了.

但是现在......你怎么取消一个块?如果将块发送到静态方法,并且您无法消除该回调引用,该怎么办?

在这种情况下,我们应该避免使用"自我"代理吗?

顺便说一下,"自我"代理,我的意思是说:

__block typeof(self) bself = self;
Run Code Online (Sandbox Code Playgroud)

谢谢!!

objective-c ios objective-c-blocks

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

仅对touchesBegan和NOT手势识别器使用hitTest逻辑

我一直在为iOS开发一个简单的游戏,包括拖动和使用旋转和其他手势识别器.touchesBegan/Moved/Ended通过识别器实现拖动和旋转.

视图形状不规则,视图边框有时会重叠,所以我在我的图片视图中实现了Ole Belgeman的UIImage + ColorAtPixel,并在主元素视图中实现了overrode 方法.isPointInside调用图片视图中的方法,该方法在触摸点检查alpha,如果触摸了透明部分则返回NO.基本上,忽略这个分支.isPointInsidehitTest

但它的副作用是hitTest忽略透明部分的所有触摸,旋转识别器仅适用于非透明区域.对于一些尺寸太小的视图,无法使用旋转手势:(

有没有办法以某种方式避免此问题,使用hitTest逻辑touchesBegan?我试图解决这个问题,但似乎hitTest在任何触摸处理之前都是严格的.

检查工作中的透明度touchesBegan,但是当您触摸与另一个视图的非透明部分重叠的透明部分时,后者不会接收到触摸.

我只是无法弄清楚这个伎俩......

预先感谢您的任何帮助!

objective-c ios

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