我在故事板中使用过autolayout约束.但是在某些情况下,我想计算子视图的动态高度.我在viewDidAppear()中编码,它工作正常,因为在布局约束设置所有视图框架之后调用此方法.这里的问题是我可以通过约束看到框架设置半秒钟.然后代码重新构建视图.
我开始了解viewDidLayout(),它在约束设置框架后调用,以便我可以更改.但它不起作用.就像在使用约束之前调用此方法一样.
当在详细信息屏幕中的我的 iOS 应用程序中时,我按下主页按钮,这将导致它进入后台模式。在大约 7 分钟不活动后,我重新启动它,它不会从我离开它的地方开始。它从第一个屏幕开始。
我上网,开始了解国家保护和恢复。我在一个屏幕中实现,但它似乎不起作用。这就是我在 appDelegate.m 中所做的
//appDelegate.m
-(BOOL)application:(UIApplication *)application shouldSaveApplicationState:(NSCoder *)coder
{
return YES;
}
-(BOOL)application:(UIApplication *)application shouldRestoreApplicationState:(NSCoder *)coder
{
return YES;
}
Run Code Online (Sandbox Code Playgroud)
以下代码位于 appDelegate.m 中的 willFinishLaunchingWithOptions 方法中。我没有使用故事板,因为这个应用程序很旧。它有 XIB。所以这个应用程序总是需要转到登录屏幕,在那里检查是否存储了 accessToken,它将从登录屏幕转到主屏幕。如果未存储,它将保留在登录屏幕中。所以这是必须执行的。因此,只有一种方法可以像下面这样编码。
- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
...
...
loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
self.navigationController = [[UINavigationController alloc]initWithRootViewController:loginViewController];
self.navigationController.restorationIdentifier = @"NavigationController";
[loginViewController.view setBackgroundColor:[UIColor whiteColor]];
self.window.rootViewController = self.navigationController;
...
...
}
Run Code Online (Sandbox Code Playgroud)
我已经在 viewDidLoad() 中为所有视图控制器提供了恢复 ID,如下所示。例如这是我在 PetDetailViewController.m 中所做的
- (void)viewDidLoad
{
[super viewDidLoad];
self.restorationIdentifier = @"MatchedPetIdentification";
self.restorationClass = [self class]; …Run Code Online (Sandbox Code Playgroud) application-restart ios uikit-state-preservation state-restoration ios-background-mode
我找到了需要添加一些代码的解决方案info.plist.我这样做如下:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>tel</string>
</array>
Run Code Online (Sandbox Code Playgroud)
仍然没有帮助.我收到此错误:
"-canOpenURL:URL失败:"tel:// 4806501708" - 错误:"此应用程序不允许查询方案电话"
我打开拨号器的代码:
NSString *phoneNumber = [@"tel://" stringByAppendingString:lblVenPhoneValue.text];
if ([UIApplication.sharedApplication canOpenURL:[NSURL URLWithString:phoneNumber]]) {
[UIApplication.sharedApplication openURL:[NSURL URLWithString:phoneNumber]];
Run Code Online (Sandbox Code Playgroud)
我需要做什么?
提前致谢
在中UIScrollView,我的内容高度和宽度大于scrollview的大小。所以基本上它可以水平和垂直滚动。我想要的是仅垂直滚动,并且UIButton通过使用以下代码来管理水平滚动。
[scrlViewQuestion setContentOffset:CGPointMake(questionWidth, 0) animated:YES];
Run Code Online (Sandbox Code Playgroud)
防止水平滚动视图,可以仅将滚动视图内容宽度设置为小于滚动视图大小,但是在我的情况下,滚动视图内容宽度大于其大小?那么解决此问题的最佳方法是什么?