我有一个垂直滚动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
我正在编写一个使用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) 我的应用程序中的一个屏幕必须是可垂直滚动的.它的内容或多或少是静态的,但它不适合手机的屏幕(因此滚动视图).我使用的UIScrollController
是一个顶视图,我想在Xcode中使用storyboard编辑器来布局其中的所有视图.我能这样做吗?我显然可以把东西放在我的可见部分UIScrollController
,但是我可以在视觉上"放下"更多的视图吗?
按照本文档和本文档,我将在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要求我使用%运算符,并且只在文档后面做一个赋值.
我有一个Xcode项目,它有一个子项目,它是一个静态库.我在父项目中定义了一个预处理器宏(在Build Settings中),我希望它在编译时被子项目识别(我#ifdef
在子项目中有一些语句).但无论我做什么,子项目中的宏总是未定义的.有可能做我想要的吗?
我试图渲染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,或isHidden
到true
不工作(在地图中没有加载在这种情况下).救命?
我在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:此处解码错误
具有相同设置的同事对同一项目没有任何问题.
我正在添加一个新的故事板参考:
error: Main.storyboard references the initial view controller of newStoryBoard.storyboard, but no designated entry point was found.
Run Code Online (Sandbox Code Playgroud)
你们中的任何人都知道我为什么会收到这个错误?
我真的很感激你的帮助.
在我的应用程序中,我使用故事板和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) [编辑:问题解决了.请参阅下面的答案.]
在我的应用程序中,我调用系统相机拍照,然后处理结果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) ios ×6
ios5 ×3
xcode ×2
android ×1
c++ ×1
cloudkit ×1
ios10 ×1
ios8 ×1
mapkit ×1
mkmapview ×1
qstring ×1
qt4 ×1
storyboard ×1
swift ×1
uiscrollview ×1
uistoryboard ×1
xcode4 ×1
xcode5 ×1
xcode7 ×1
xcode7-beta4 ×1