我正在开发一个使用Facebook集成的应用程序,log in
系统现在运行正常.但是,当用户点击时,我似乎无法返回到我的初始视图控制器log out
.
这是我的概述storyboard
:
当用户点击blue button
(在顶部)时,我想返回到开头.我该怎么做才能实现这一目标?正如你所看到的,我有多个Navigation Controllers
,我只是用Push-segues
来到那里.但是,我确实使用了SWRevealViewController
,你可以在中间看到.
我尝试过[self.navigationController popToRootViewControllerAnimated:YES];
什么都没做.
有什么建议?有谁熟悉SWRevealViewController
它可能对我的Navigation
堆栈做了什么?任何帮助将不胜感激!
谢谢.
logout uiviewcontroller ios facebook-login swrevealviewcontroller
因此,我正在尝试使用channelId获取YouTube频道的频道配置文件图片.
我想通过将channelId添加到URL并以此方式获取图像来实现.Facebook有类似的地方使用此URL:
http://graph.facebook.com/user_id/picture?type=square
Run Code Online (Sandbox Code Playgroud)
Google+也有,在这里找到了这个问题.可悲的是,它不适用于YouTube(我无法让它工作)
希望有人有解决方案!
提前致谢 :)
我正在尝试实现一个UIScrollView
,但每个教程都处理预设数量的项目.
我所拥有的是多个UITextField
,但文本字段的数量各不相同.基本上,只要一个 textField
文本包含文本,就会在其下方显示另一个空文本,允许用户填写无限数量的文本字段.
一旦用户将内容输入到上一个文本中,我的代码就会创建一个新的文本字段.该x-coordinates
的,这是一样的前一个,但y-coordinates
新一等于以前+ 5px的高度.
我正在使用故事板,而且我把原版textField
放在了一个UIScrollView
.我已将此连接scrollView
到我的代码,并以这种方式添加新的文本字段:[self.scrollView addSubview:newTextField];
但是,当数量textFields
超过时scrollView
,我无法滚动显示已添加的新数据.
我该怎么做呢?我不认为我完全得到了这个setContentSize
东西,所以它可能与此有关.这里有一些图片和代码来解释我的问题:
添加新文本字段的代码:
UITextField *newTextField = [[UITextField alloc]initWithFrame:CGRectMake(textField.frame.origin.x, textField.frame.origin.y + textField.frame.size.height+5, textField.frame.size.width, textField.frame.size.height)];
newTextField.placeholder = @"Add more text";
newTextField.borderStyle = UITextBorderStyleNone;
newTextField.font = [UIFont systemFontOfSize:14];
newTextField.autocorrectionType = UITextAutocorrectionTypeYes;
newTextField.clearButtonMode = UITextFieldViewModeWhileEditing;
newTextField.autocapitalizationType = UITextAutocapitalizationTypeSentences;
newTextField.returnKeyType = UIReturnKeyDone;
[newTextField setTag:textFieldTag];
newTextField.delegate = self;
[self.scrollView addSubview:newTextField];
Run Code Online (Sandbox Code Playgroud)
故事板:
在这里,您可以看到我如何将原始文本字段放在我的滚动视图中
它在模拟器中的外观如何:
在文本字段中输入文本时,会发生以下情况:
前一个文本框下方会出现一个空文本字段.
但是,当您超过ScrollView时,会发生这种情况
您无法再看到新的textField,因为它位于scrollView的边界下方.你无法滚动显示它. …
我在为我设置文本字段时遇到一些问题UIAlertController
.
我正在使用此代码添加舍入textfield
到alertcontroller
:
[alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) {
textField.placeholder = @"placeholder";
textField.borderStyle = UITextBorderStyleRoundedRect;
}];
Run Code Online (Sandbox Code Playgroud)
但结果如下:
如何删除外边框和背景颜色?所以它看起来像他们在本教程中所拥有的:http://useyourloaf.com/blog/2014/09/05/uialertcontroller-changes-in-ios-8.html.
谢谢!
我正在尝试为我的游戏加水.除了不同的背景颜色,它没有多少.但是,我希望player-sprite
它漂浮在它上面(或者在其中间).如果玩家只是从下面走进水里,我希望他漂浮到顶端.如果他摔倒了,我希望他慢慢改变方向并漂浮起来.
当他在水中时,我试着让重力为负,但这给了我一些稍微不想要的效果.例如,当他(玩家)浮出水面时,正常的重力会将他推倒,水将推动他,等等.最终,玩家将在水中"弹跳",从一端推到另一端.当他浮出水面时,我希望他能够平静地留在水面上.我怎样才能做到这一点?
这是我在我的代码update-loop
:
SKNode *backgroundNodeAtPoint = [_bgLayer nodeAtPoint:_ball.position];
if ([backgroundNodeAtPoint.name isEqualToString:@"WATER"]) {
self.physicsWorld.gravity = CGVectorMake(self.physicsWorld.gravity.dx, 2);
} else {
if (self.physicsWorld.gravity.dy != -4) {
self.physicsWorld.gravity = CGVectorMake(self.physicsWorld.gravity.dx, -4);
}
}
Run Code Online (Sandbox Code Playgroud)
基本上,2
当玩家在水中时,这会改变我的引力,否则将其更改为-4
除非已经存在-4
.
谢谢!
我有一个UIViewController
与UIToolBar
下面的UINavigationBar
和UITableView
低于.UIBarButtonItem
我唯一的UIToolBar
就是UISegmentedControl
如下截图所示:
但是,如何在App Store应用程序中使用UISegmentedControl
/ UIBarButtonItem
来拉伸以填充UIToolBar
类似内容?
请记住,我也支持横向模式,因此在旋转设备时必须自动拉伸以适应新的宽度.这是我希望实现的目标AutoLayout
,但据我所知,我不能AutoLayout
在内部使用UIToolBar
.
有什么建议(除了UIToolbar
用a 替换UIView
)?
我正在尝试为应用程序构建Web服务,因此数据存储在我拥有的在线数据库中.我目前正在构建PHP文件,我很好奇,我怎么能POST
一个array
使用cURL
在终端Mac应用程序.
你看,应用程序将向web服务发送一个由字符串组成的数组.例如像这样的东西["String 1", "String 2", "String 3"]
.但是为了测试我将用于将这些值插入数据库的代码是否有效,我需要以某种方式将此数据传递给Web服务.到目前为止,我一直在使用Mac终端应用程序并发布这样的curl -F "user_id=1" localhost/test/webservice.php"
,但我不知道如何传递数组.
到目前为止我所拥有的是:
curl -F "user_id=1" -F "title=Random title 123" -F "num_items=2" -F "items[]=[Item 1, Item 2]" localhost/test/webservice.php
Run Code Online (Sandbox Code Playgroud)
但我不认为这是传递数组的正确方法,因为我相信我的php文档中的代码是正确的,但是存储在我的数据库中的值实际上是单词数组.我认为这items[]
是启动它的正确方法,但我不太确定=
-sign 之后会发生什么.
有人知道这样做的正确方法吗?
如果这恰好是正确的,那么我在数组中存储数据的方式就出了问题.我正在使用stmt
和这样的bind_param()
关键字:
$items = $_POST["items"]; // This is the array
$stmt = $this->db->prepare('INSERT INTO items (item_id, user_id, title) VALUES (?, ?, ?)');
$stmt->bind_param('iis', $item_id, $user_id, $items);
$stmt->execute();
$stmt->close(); …
Run Code Online (Sandbox Code Playgroud) 当用户第一次启动您的应用程序时,CloudKit 创建唯一的用户记录并添加到公共数据库中。出于调试目的,我尝试删除它,以便 CloudKit 可以生成一个与之前不同的新的唯一 ID。
但是,当尝试使用 CloudKit 仪表板删除所述记录时,我收到以下错误:
invalid attempt to delete user records directly
Run Code Online (Sandbox Code Playgroud)
当尝试使用该deleteRecordWithID:
方法在代码中删除它时,我遇到了同样的错误。
有谁知道删除用户记录的正确方法吗?有可能吗?是否有其他解决方案可以通过强制创建新记录来解决我的问题?
我有一个问题,即locationManager:didChangeAuthorizationStatus
在用户(1)接受或(2)拒绝我使用位置服务的请求后没有被调用.通过发出不同的NSLog
陈述,我得出的结论是,当我请求授权时调用该方法,但是当用户做出选择时则不会.有没有人有同样的问题?如果是这样,你是如何解决它们的?
这是我初始化我的方式location manager
:
if (_locationManager == nil) {
NSLog(@"Creating location manager");
_locationManager = [[CLLocationManager alloc] init];
_locationManager.delegate = self;
_locationManager.distanceFilter = kCLDistanceFilterNone;
_locationManager.desiredAccuracy = kCLLocationAccuracyBest;
}
if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined) {
NSLog(@"Not determined");
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"dynamicNotifOn"]) {
[_locationManager requestAlwaysAuthorization];
} else {
[_locationManager requestWhenInUseAuthorization];
}
} else if (...) {...
Run Code Online (Sandbox Code Playgroud)
这是方法:
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status {
NSLog(@"Callback");
if (status == kCLAuthorizationStatusAuthorizedAlways || status == kCLAuthorizationStatusAuthorizedWhenInUse) {
NSLog(@"Authorized");
[_mainButton setIsLoading:NO];
[self startGettingLocation];
} …
Run Code Online (Sandbox Code Playgroud) 我正在尝试UIImage
根据给定剪辑a UIBezierPath
,但是结果图像保留了原始形状和大小。我希望形状和大小类似于路径,即新图像的可见内容。
看下面的例子:
以下是我用来屏蔽给定路径的图像的代码:
func imageByApplyingClippingBezierPath(_ path: UIBezierPath) -> UIImage {
UIGraphicsBeginImageContextWithOptions(CGSize(
width: size.width,
height: size.height
), false, 0.0)
let context = UIGraphicsGetCurrentContext()!
context.saveGState()
path.addClip()
draw(in: CGRect(x: 0, y: 0, width: size.width, height: size.height))
let newImage = UIGraphicsGetImageFromCurrentImageContext()!
context.restoreGState()
UIGraphicsEndImageContext()
return newImage
}
Run Code Online (Sandbox Code Playgroud)
一种解决方案是在蒙版后裁剪图像,但理想情况下,我希望一次性完成该操作尽可能简单和有效。
任何解决方案/提示将不胜感激。
ios ×7
objective-c ×3
arrays ×1
autolayout ×1
cloudkit ×1
curl ×1
database ×1
game-physics ×1
logout ×1
php ×1
sprite-kit ×1
swift ×1
terminal ×1
uialertview ×1
uibezierpath ×1
uiimage ×1
uiscrollview ×1
uitextfield ×1
uitoolbar ×1
xcode ×1
youtube ×1
youtube-api ×1