我正在尝试在我的iPhone应用程序中调整UIButton的大小.我有一个UIButton合成,当我调用下面的代码时,它会在屏幕上移动,但按钮的宽度和高度永远不会改变.
button.frame.size = CGRectMake(104, 68, 158, 70);
Run Code Online (Sandbox Code Playgroud)
例如,当我将高度(70)更改为40时,按钮的高度不会改变.但是,如果我更改x或y,它将在屏幕上移动.
有任何想法吗?
我有一个带有导航控制器和默认RootViewController的程序.如果我没有以编程方式执行任何操作,应用程序将启动并且RootViewController按预期工作,例如下面的故事板表示:

我遇到的问题是通过合并Optional Start ViewController.我想要的是:在我的AppDelegate(didFinishLaunchingWithOptions)中,我想要这样的代码:
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"OptionalStartViewController"];
self.window.rootViewController = viewController;
[self.window makeKeyAndVisible];
Run Code Online (Sandbox Code Playgroud)
首先显示可选的Start ViewController.然后,在用户完成Optional可视控件后,他们可以显示RootViewController.
所以在Optional Start ViewController中,我添加了这样的代码来显示Root View Controller:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"RootViewController"];
[self appDelegate].window.rootViewController = viewController;
[[self appDelegate].window makeKeyAndVisible];
Run Code Online (Sandbox Code Playgroud)
这一切都有效,除了 RootViewController,如图所示,没有预期的导航控件(即视图显示没有导航控件).
我也尝试过以下代码(使用UINavigationController而不是ViewController),结果相同......
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
UINavigationController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"];
[self appDelegate].window.rootViewController = viewController;
[[self appDelegate].window makeKeyAndVisible];
Run Code Online (Sandbox Code Playgroud)
另一个扭曲......可能有几个可选的启动视图控制器.
有任何想法吗?
我想避免if下面示例代码中的语句,而是hasPrefix对我的数字字符串进行一次调用并传入prefixes数组。有没有办法在 Swift 中做到这一点?
let prefixes: [String] = ["212", "213", "214"]
let number: String = "213-555-1212"
if number.hasPrefix("212") || number.hasPrefix("213") {
print("found")
}
Run Code Online (Sandbox Code Playgroud) 我需要创建一个Objective-C方法,将int转换为字节数组.在这个例子中,我不能使用NSArray作为返回类型,它必须是一个UInt8数组.我写了一个简单的方法来执行此操作,但它在编译期间有错误并告诉我,我有不兼容的返回类型.这是代码片段.有任何想法吗?
- (UInt8[])ConvertToBytes:(int) i
{
UInt8 *retVal[4];
retVal[0] = i >> 24;
retVal[1] = i >> 16;
retVal[2] = i >> 8;
retVal[3] = i >> 0;
return retVal;
}
Run Code Online (Sandbox Code Playgroud) 我知道的是一个简单的问题,但经过书籍和互联网上的多次搜索后,我似乎无法想出一个解决方案.我有一个标准的iPhone项目,其中包含一个ViewController.我的应用程序在这一点上运行得很好.
我现在想要创建一个具有一些基本实用方法的泛型类(扩展NSObject).我们将这个类称为Util.m(以及相关的.h文件).
我在我的项目中创建了Util类(和.h文件),现在我想从ViewController访问该类类中包含的方法.
这是Util.h的简单版本的示例
#import <Foundation/Foundation.h>
@interface Util : NSObject {
}
- (void)myMethod;
@end
Run Code Online (Sandbox Code Playgroud)
然后Util.m文件看起来像这样:
#import "Util.h"
@implementation Util
- (void)myMethod {
NSLog(@"myMethod Called");
}
@end
Run Code Online (Sandbox Code Playgroud)
现在我的Util类已经创建了,我想从我的ViewController调用"myMethod"方法.在我的ViewController的.h文件中,我执行以下操作:
#import "Util.h"
@interface MyViewController : UIViewController {
Util *utils;
}
@property (assign) Util *utils;
@end
Run Code Online (Sandbox Code Playgroud)
最后,在ViewController.m中,我执行以下操作:
#import "Util.h"
@implementation MyViewController
@synthesize utils;
- (void)viewDidLoad {
[super viewDidLoad];
utils.myMethod; //this doesn't work
[utils myMethod]; //this doesn't work either
NSLog(@"utils = %@", utils); //in the console, this prints "utils = (null)"
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我想不仅能够直接引用像这样的简单util类中的其他类/方法,而且我还想直接引用其他ViewControllers及其属性和方法.
我很难过!请帮忙.
我有一个像这样的JSON数组:
[{"Name":"Bob", "EmployeeID":1234, "StartDate":"12/01/2011"},
{"Name":"Jim", "EmployeeID":4432, "StartDate":"01/12/1997"},
{"Name":"Heather", "EmployeeID":6643, "StartDate":"07/09/2010"}]
Run Code Online (Sandbox Code Playgroud)
如何使用Javascript查找和检索Jim的记录,按EmployeeID(4432)搜索?