小编Mac*_*tle的帖子

拦截UIScrollView上的平移手势会中断滚动

我有一个垂直滚动UIScrollView.我还想在其上处理水平平移,同时允许默认的垂直滚动行为.我UIView在滚动视图上放置了一个透明图,并为其添加了一个平移手势识别器.这样我可以很好地获得平底锅,但滚动视图不会接收任何手势.

我已经实现了以下UIPanGestureRecognizerDelegate方法,希望仅将我的手势识别器限制为水平平底锅,但这没有帮助:

- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer {
    // Only accept horizontal pans here.
    // Leave the vertical pans for scrolling the content.
    CGPoint translation = [gestureRecognizer translationInView:self.view];
    BOOL isHorizontalPan = (fabsf(translation.x) > fabsf(translation.y));
    return  isHorizontalPan;
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    return (otherGestureRecognizer == _scrollView.panGestureRecognizer);
}
Run Code Online (Sandbox Code Playgroud)

uiscrollview uigesturerecognizer ios ios5 uipangesturerecognizer

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

未收到CloudKit推送通知

我正在编写一个使用CloudKit的小应用程序.出于某种原因,当有与查询匹配的新记录时,应用程序不会收到任何通知.有没有人能够使这个功能工作?

我在应用程序中创建了新记录,但也在CloudKit仪表板中创建了新记录.记录非常简单,只有一个整数字段.

创建记录:

 CKRecord *record = [[CKRecord alloc] initWithRecordType:kSISCloudKitRecordTypeTest];
 record[@"value"] = @1;
 [self.publicDatabase saveRecord:record completionHandler:^(CKRecord *record, NSError *error)
  {
       // this call succeeds, no error.
  }];
Run Code Online (Sandbox Code Playgroud)

注册通知:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [application registerForRemoteNotifications];
}
Run Code Online (Sandbox Code Playgroud)

创建订阅:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"value = 1"];

CKSubscription *subscription = [[CKSubscription alloc]
                                initWithRecordType:kSISCloudKitRecordTypeTest
                                predicate:predicate
                                options:CKSubscriptionOptionsFiresOnRecordCreation];

CKNotificationInfo *notificationInfo = [CKNotificationInfo new];
notificationInfo.alertLocalizationKey = @"LOCAL_NOTIFICATION_KEY";
notificationInfo.soundName = @"Party.aiff";
notificationInfo.shouldBadge = YES;
subscription.notificationInfo = notificationInfo;

[self.publicDatabase saveSubscription:subscription
                    completionHandler:^(CKSubscription *subscription, NSError *error)
 {
     // this succeeds as …
Run Code Online (Sandbox Code Playgroud)

ios ios8 cloudkit cksubscription

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

在大型UIScrollView中可视化地排列子视图

我的应用程序中的一个屏幕必须是可垂直滚动的.它的内容或多或少是静态的,但它不适合手机的屏幕(因此滚动视图).我使用的UIScrollController是一个顶视图,我想在Xcode中使用storyboard编辑器来布局其中的所有视图.我能这样做吗?我显然可以把东西放在我的可见部分UIScrollController,但是我可以在视觉上"放下"更多的视图吗?

storyboard xcode4 ios5

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

for循环中的Qt字符串构建器

按照文档和文档,我将在for循环中使用QStringBuilder.我应该应用它的代码是

QStringList words;
QString testString;

for (auto it = words.constBegin(); it != words.constEnd(); ++it)
{
    testString += "[" + *it + "] ";
}
Run Code Online (Sandbox Code Playgroud)

但是我不明白如何编写它来使用QStringBuilder,因为我在做一个赋值,而QStringBuilder要求我使用%运算符,并且只在文档后面做一个赋值.

c++ stringbuilder qstring qt4

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

父项目中的预处理器宏,用于子项目

我有一个Xcode项目,它有一个子项目,它是一个静态库.我在父项目中定义了一个预处理器宏(在Build Settings中),我希望它在编译时被子项目识别(我#ifdef在子项目中有一些语句).但无论我做什么,子项目中的宏总是未定义的.有可能做我想要的吗?

xcode ios xcode5

9
推荐指数
0
解决办法
388
查看次数

在屏幕外渲染MKMapView

我试图渲染MKMapView成一个UIImage,而不是在屏幕上显示它.我初始化地图:

let mapView = MKMapView(frame: CGRect(x: 0, y: 0, width: 1000, height: 1000))
mapView.delegate = self

let region = MKCoordinateRegionMakeWithDistance(location.coordinate(), 1000, 1000)
mapView.setRegion(region, animated: false)
Run Code Online (Sandbox Code Playgroud)

我也实现了MKMapKitDelegate这个方法mapViewDidFinishLoadingMap().除非我将地图添加到视图层次结构使其可见,否则永远不会调用此方法.这意味着,其设置alpha为0,或isHiddentrue不工作(在地图中没有加载在这种情况下).救命?

mkmapview mkmapviewdelegate swift ios10

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

Xcode 7 beta 4:MKMapKit挂起了应用程序

我在Xcode 7 beta 4和iOS 9模拟器上看到了一个奇怪的问题.尝试加载包含地图的视图时,任何使用地图的应用都会挂起.它没有抛出异常.如果我删除地图,它的工作原理.即使在一个非常简单的项目中,这似乎也有100%的重复.

当存在地图时,我看到以下日志输出:

/BuildRoot/Library/Caches/com.apple.xbs/Sources/VectorKit_Sim/VectorKit-1134.11/GeoCSS/GeoCSS/StyleSheet.cpp:122 STYL Parse:这里解码错误/BuildRoot/Library/Caches/com.apple.xbs/Sources /VectorKit_Sim/VectorKit-1134.11/GeoCSS/GeoCSS/StyleSheet.cpp:99 STYL Parse:此处解码错误

具有相同设置的同事对同一项目没有任何问题.

mapkit ios xcode7 xcode7-beta4

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

iOS:Main.storyboard引用初始视图控制器

我正在添加一个新的故事板参考:

在此输入图像描述 但是我收到了这个错误:

error: Main.storyboard references the initial view controller of newStoryBoard.storyboard, but no designated entry point was found.
Run Code Online (Sandbox Code Playgroud)

你们中的任何人都知道我为什么会收到这个错误?

我真的很感激你的帮助.

xcode interface-builder ios uistoryboard

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

segue:目标视图控制器古怪

在我的应用程序中,我使用故事板和segues,我经常在执行segue之前将数据传递到目标视图控制器,如下所示:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{
    if ([segue.destinationViewController respondsToSelector:@selector(setMyData:)]) {
        [segue.destinationViewController performSelector:@selector(setMyData:) 
                                          withObject:myData];
    }
} 
Run Code Online (Sandbox Code Playgroud)

除了在一个地方,它无处不在.选择器被调用,数据被设置,但是当segue完成并且目标控制器出现时,它没有我刚刚设置的数据.在源视图控制器和目标视图控制器中打印视图控制器的ID后,我发现segue.destinationViewController上面的代码中的视图控制器的实例与显示控制器的实例不同.这里发生了什么?

[更新1] 我查看了目标视图控制器的生命周期,它首先在segue执行期间加载,但是我在它上面设置了属性!这意味着,当我调用performSelector它时,视图控制器对象没有初始化!这就是我设置的数据不坚持的原因.我不明白为什么会这样,为什么同样的方法适用于我的应用程序的其他部分.

[更新2]setMyData按要求 发布代码.起初我根本没有这种方法,因为它locationToOpen是一个公共财产.我只添加它以确保它被调用并打印调试信息.

- (void)setMyData:(MyData *)myData
{
    DLog(@"self: %@", (id)self);
    _myData = myData;
}
Run Code Online (Sandbox Code Playgroud)

uiviewcontroller ios ios5 uistoryboardsegue

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

执行摄像头意图时活动被杀死

[编辑:问题解决了.请参阅下面的答案.]

在我的应用程序中,我调用系统相机拍照,然后处理结果onActivityResult.你知道,通常.它曾经工作,但现在我的呼叫活动在我拍摄时被杀死了.具体来说,onDestroy()在按下相机快门后立即调用我的活动.照片确实被拍摄并保存(我已经检查过该文件是否写在SD卡上).在我接受照片后,调用onActivityResult活动堆栈中的先前活动而不是返回到调用活动并调用.我在logcat中看不到任何异常.我的自定义异常处理程序不会被调用.如果重要,我的应用程序还包括一个收听GPS更新的服务,但我注销了所有接收器onPause().

这是调用堆栈MyCallingActivity.onDestroy():

Thread [<1> main] (Suspended (breakpoint at line 303 in NewPlaceDetailsActivity))   
    NewPlaceDetailsActivity.onDestroy() line: 303   
    ActivityThread.performDestroyActivity(IBinder, boolean, int, boolean) line: 2663    
    ActivityThread.handleDestroyActivity(IBinder, boolean, int, boolean) line: 2694 
    ActivityThread.access$2100(ActivityThread, IBinder, boolean, int, boolean) line: 117    
    BinderProxy(ActivityThread$H).handleMessage(Message) line: 968  
    ActivityThread$H(Handler).dispatchMessage(Message) line: 99 
    Looper.loop() line: 130 
    ActivityThread.main(String[]) line: 3687    
    Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]  
    Method.invoke(Object, Object...) line: 507  
    ZygoteInit$MethodAndArgsCaller.run() line: 842  
    ZygoteInit.main(String[]) line: 600 
    NativeStart.main(String[]) …
Run Code Online (Sandbox Code Playgroud)

android android-intent android-activity

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