我正在使用Interface Builder为iOS 8制作启动图像文件.我想要的启动图像非常简单(我认为与设置应用程序相同) - 顶部的导航栏带有一个空的Grouped TableView.没有标题等
注意,我通常不使用Interface Builder - 因此IB对我来说是全新的.
我试图通过向视图添加导航栏和表视图来实现此目的 - 然后设置约束.约束(和颜色)工作正常,但......
问题:启动图像在状态栏上显示全屏.像这样:

如何同时获取状态栏和导航栏?
就像我说的那样,当你选择在Xcode中添加Launch Screen时,我正在使用默认的'UIView'.所以没有导航控制器; 那是问题吗?
另外,UIView上有一些选项似乎应该给我我想要的东西:

我试过玩状态栏选项,但它不是很有效.
Top Bar选项的目的是什么?对于Interface Builder noob,如何创建复制"设置"应用程序的启动屏幕文件?
我正在使用一些我需要重构的代码.视图控制器充当两个其他视图控制器的容器,并将在它们之间进行交换,如下面的代码所示.
这可能不是最好的设计.可能不需要以这种方式交换视图控制器.我明白那个.但是,当我使用这段代码时,我想进一步了解addChildViewController调用会发生什么.我无法在Apple的文档或相关问题中找到答案(这可能表明设计需要改变).
具体来说 - 容器视图控制器如何处理要求添加已添加的子视图控制器的情况?它是否认识到它已经添加了该视图控制器对象?
例如,如果下面的代码在方法内 - 并且该方法被调用两次...
[self addChildViewController:viewControllerB];
[self.view addSubview:viewControllerB.view];
[viewControllerB didMoveToParentViewController:self];
[viewControllerA willMoveToParentViewController:nil];
[viewControllerA.view removeFromSuperview];
[viewControllerA removeFromParentViewController];
Run Code Online (Sandbox Code Playgroud)
谢谢,加文
我的目标只是iOS7.
我想UITextView在显示键盘时"调整大小" ,以便可以看到所有文本,而不是隐藏在键盘后面.
我考虑了几种不同的方法......
1)更改UITextView键盘显示的帧.
下面的问题详细说明了我使用这种方法时遇到的同样问题 - 尽管框架设置正确,但最后一行/光标将超出范围UITextView,因此不在视线范围内:
您可以从以下屏幕截图中看到此效果.该UITextView有一个绿色的背景.它被添加到UIView红色背景中.箭头显示光标所在的位置......

2)改变contentInset财产UITextView
我相信这种推荐/首选方法.注意,我已经阅读了Apple文档,用于根据出现/消失的键盘调整视图大小:
使用我的代码,当我更改底部组件时,我没有任何效果UIEdgeInsets.
与上面的示例相同,UITextView红色为绿色UIView,文本在键盘下方消失:

这是代码:
- (void)keyboardWillShow:(NSNotification*)notification
{
CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
UIEdgeInsets insets = _textView.contentInset;
insets.bottom += keyboardSize.height;
_textView.contentInset = insets;
_textView.scrollIndicatorInsets = insets;
}
Run Code Online (Sandbox Code Playgroud)
注意:该scrollIndicatorInsets部分工作正常.用屏幕截图很难描绘,但滚动指示器在正确的位置开始和停止并且看起来是正确的大小.
我已经阅读了一些人们遇到类似问题的问题.
3)改变textContainerInset上UITextView
这个问题的答案建议使用textContainerInset而不是contentInset在iOS 7上:
UITextView contentInset在iOS 7上的UITextView中不起作用?
我也试过这个,但仍然无法调整大小 …
我有UITabBarController两个选项卡.每个标签都是一个UITableViewController.
当UITabBarController出现时,这两个选项卡视图中的每个不正确的边界.第一个选项卡正确位于导航栏下方,但延伸到底部的选项卡栏下方.第二个选项卡是另一种方式,从导航栏下方开始,但在底部的选项卡栏之前正确停止.

我正在创建和呈现TabBarController,如下所示:
ActiveListTabBarViewController* listTabBarController = [[ActiveListTabBarViewController alloc] initWithListController:_listController];
UINavigationController* nc = [[UINavigationController alloc] initWithRootViewController:listTabBarController];
[self presentViewController:nc animated:YES completion:^(){}];
Run Code Online (Sandbox Code Playgroud)
然后在initTabBarController中,创建并添加子(tab)视图,如下所示:
_todoListViewController = [[BasicTableViewController alloc] initWithList:[_controller itemsToDo]];
_todoListViewController.delegate = self;
_todoListViewController.title = @"To Do";
_completedListViewController = [[BasicTableViewController alloc] initWithList:[_controller itemsDone]];
_completedListViewController.delegate = self;
_completedListViewController.title = @"Completed";
[self setViewControllers:@[_todoListViewController, _completedListViewController]];
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
谢谢,加文
更新:按照建议添加以下方法BasicTableViewController:
- (UIRectEdge)edgesForExtendedLayout
{
return UIRectEdgeNone;
}
Run Code Online (Sandbox Code Playgroud)
第一个选项卡的行为已得到改进并且位置正确,但第二个选项卡保持不变.现状如下:

有什么建议?干杯.
UITextView在iOS 7中,我一直在使用自动布局以编程方式创建.这样的事情:
_textView = [UITextView new];
_textView.translatesAutoresizingMaskIntoConstraints = NO;
_textView.font = [UIFont systemFontOfSize:18.0];
_textView.delegate = self;
[self.view addSubview:_textView];
Run Code Online (Sandbox Code Playgroud)
除了我创建的其他约束之外,我还有一个用于文本视图的底部:
_textViewBottomConstraint =
[NSLayoutConstraint constraintWithItem:_textView
attribute:NSLayoutAttributeBottom
relatedBy:NSLayoutRelationEqual
toItem:self.bottomLayoutGuide
attribute:NSLayoutAttributeTop
multiplier:1.0
constant:0.0];
[self.view addConstraint:_textViewBottomConstraint];
Run Code Online (Sandbox Code Playgroud)
这样我可以在键盘显示时更改约束:
- (void)keyboardDidShow:(NSNotification*)sender
{
CGRect keyboardFrame =
[sender.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGRect convertedFrame =
[self.view convertRect:keyboardFrame fromView:self.view.window];
_textViewBottomConstraint.constant = -convertedFrame.size.height;
[_textView layoutIfNeeded];
}
Run Code Online (Sandbox Code Playgroud)
这一切都很好......
我刚刚切换到Xcode 6和iOS 8(我知道很晚) - UITextView现在的文本顶部有一个插页.例如(文本视图背景为黄色):

是什么导致了插图?是否NSTextContainer与textContainerInset?相关?
NSTextContainer和textContainerInset的正确使用方式UITextView从iOS的7及以后?我正在为启动屏幕文件使用故事板.这是一个非常基本的设置:

我想为导航栏设置不透明的颜色......
我可以在AppDelegate中执行以下操作:
[[UINavigationBar appearance] setBarTintColor:[UIColor redColor]];
Run Code Online (Sandbox Code Playgroud)
但这不适用于启动屏幕文件.
如何barTintColor在Interface Builder中设置导航栏颜色/ ?
我正在阅读文档并尝试编写一些基本文件I/O代码作为工具来帮助我学习Rust.
以下内容无法编译:
use std::fs;
use std::io;
use std::path::Path;
pub fn read_filenames_from_dir<P>(path: P) -> Result<Vec<Path>, io::Error>
where
P: AsRef<Path>,
{
let paths = try!(fs::read_dir(path));
Ok(paths.unwrap())
}
Run Code Online (Sandbox Code Playgroud)
编译错误:
error[E0277]: the trait bound `[u8]: std::marker::Sized` is not satisfied in `std::path::Path`
--> src/main.rs:5:1
|
5 | / pub fn read_filenames_from_dir<P>(path: P) -> Result<Vec<Path>, io::Error>
6 | | where
7 | | P: AsRef<Path>,
8 | | {
9 | | let paths = try!(fs::read_dir(path));
10 | | Ok(paths.unwrap())
11 | | }
| |_^ …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,用户需要在使用它之前登录。
为了增强用户体验,用户只需要在第一次登录,每次应用程序都不会显示登录屏幕,但会显示应用程序[我使用用户默认值来存储他的ID]现在我已经实现了这一点但我遇到了一个错误,当我成功登录后打开它时,应用程序崩溃了..
问题是: 为了模拟我打开应用程序而不需要登录的场景,我必须停止应用程序[这意味着不会有调试会话],然后重新打开应用程序..
我要问的是: 有没有办法知道我没有在调试会话中运行应用程序来查看导致错误的原因?
提前致谢
我试图先设置一个String默认值,但String如果给出了一个命令行参数,则更新它...
这是我的起点(不编译):
use std::env;
fn main() {
let mut config_file = "C:\\temp\\rust\\config.txt".to_string();
let args: Vec<String> = env::args().collect();
if args.len() > 1 {
config_file = args[1];
}
println!("Config file path: {}", config_file);
}
Run Code Online (Sandbox Code Playgroud)
所以,(我认为)env::args()给了我一个拥有的矢量或拥有的字符串......我怎么做:
注意:
$ rustc --version
rustc 1.8.0 (db2939409 2016-04-11)
Run Code Online (Sandbox Code Playgroud) 让我先说:
我读过一些介绍内容,包括本介绍无框架由马修Podwysocki.
所以我从他的一个例子开始,写了一些像这样的鼠标拖动/绘图代码:
var leftMouseDown = Observable.FromEventPattern<MouseEventArgs>(mainCanvas, "MouseLeftButtonDown");
var leftMouseUp = Observable.FromEventPattern<MouseButtonEventArgs>(mainCanvas, "MouseLeftButtonUp");
var mouseMove = Observable.FromEventPattern<MouseEventArgs>(mainCanvas, "MouseMove");
var mouseMoves = from mm in mouseMove
let location = mm.EventArgs.GetPosition(mainCanvas)
select new { location.X, location.Y };
var mouseDiffs = mouseMoves.Skip(1).Zip(mouseMoves, (l, r) => new { X1 = l.X, Y1 = l.Y, X2 = r.X, Y2 = r.Y });
var mouseDrag = from _ in leftMouseDown
from md in mouseDiffs.TakeUntil(leftMouseUp)
select …Run Code Online (Sandbox Code Playgroud) 我一直在尝试将记事本设置为Git的默认全局编辑器.
调用记事本现在工作正常.这是我的配置文件的样子:
[user]
name = Gavin Hope
email = gavin.hope@myemailaddress.com
[core]
autocrlf = true
excludesfile = C:\\Users\\Gavin.Hope\\Documents\\gitignore_global.txt
editor = 'C:\\Windows\\notepad.exe'
[diff]
tool = p4merge
[merge]
tool = p4merge
[mergetool "p4merge"]
path = C:/Program Files/Perforce/p4merge.exe
keepBackup = false
trustExitCode = false
Run Code Online (Sandbox Code Playgroud)
但是,当记事本启动时,例如git commit,没有换行符.我看到了这个:
# Please enter the commit message for your changes. Lines starting# with '#' will be ignored, and an empty message aborts the commit.## Date: Wed Oct 28 11:40:40 2015 …Run Code Online (Sandbox Code Playgroud) ios ×6
cocoa-touch ×3
ios7 ×3
ios8 ×3
rust ×2
uitextview ×2
c# ×1
git ×1
git-config ×1
linq ×1
objective-c ×1