当我在iOS 8上为我的应用程序添加自定义输入视图时,我遇到了问题.这在iOS 7上完全正常,但是当切换到iOS 8时,一切都失败了.
这是堆栈跟踪:
2014-06-03 21:23:54.237 MyApp[1910:47245] *** Terminating app due to uncaught exception 'UIViewControllerHierarchyInconsistency', reason: 'child view controller:<UICompatibilityInputViewController: 0x1103f9d40>
should have parent view controller:<StopChooser: 0x11083e200> but requested parent is:<UIInputWindowController: 0x110858800>'
*** First throw call stack:
(
0 CoreFoundation 0x00000001042eee35 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x0000000103b919a0 objc_exception_throw + 45
2 CoreFoundation 0x00000001042eed6d +[NSException raise:format:] + 205
3 UIKit 0x00000001023d94cd -[UIViewController _addChildViewController:performHierarchyCheck:notifyWillMove:] + 184
4 UIKit 0x0000000102977a2b -[UIInputWindowController changeToInputViewSet:] + 416
5 UIKit 0x0000000102973f56 -[UIInputWindowController moveFromPlacement:toPlacement:starting:completion:] + 185
6 UIKit …
Run Code Online (Sandbox Code Playgroud) 我想要做的就是更改UIDatePicker的字体颜色.我研究了其他问题,但他们都涉及改变其他属性和定制整个外观.我想要做的只是将字体颜色从黑色更改为白色.我发现很难相信我不能做这么看似简单的任务.为什么淡色会影响它呢?它甚至做了什么吗?
如何将UITextRange
对象转换为NSRange
?我已经看到很多关于走向另一个方向的SO帖子,但这与我需要的相反.我正在使用的UITextRange
selectedTextRange
是一个属性UITextView
.它返回一个,UITextRange
但我需要一个范围.
这是我不理解的代码:
class Base
{
public:
Base(){}
Base operator=(Base ob2)
{
std::cout << "Using Base operator=() " << '\n';
return *this;
}
};
class Derived : public Base
{
public:
Derived(){}
Derived operator=(Base ob2)
{
std::cout << "Using Derived operator=() " << '\n';
return *this;
}
};
int main()
{
Derived derived1, derived2;
Base base1;
derived1 = derived2; // Uses base operator=()
derived1 = base1; // Uses derived operator=()
return 0;
}
Run Code Online (Sandbox Code Playgroud)
确定的第一个赋值使用Base类的运算符,第二个赋值使用Derived类的运算符的语言规则是什么?
是的,我知道通常不会像这样声明赋值运算符.这就是为什么我称它为accademical.
根据苹果的iOS约8.2和6.2的Xcode的发行版中发现新闻信息在这里,他们提到开发人员能够使用带有苹果观看新技术:
借助iOS 8.2 beta SDK,开发人员现在可以开始使用WatchKit为创新的Apple Watch界面创建突破性的新应用,Glance和可操作通知,并使用Force Touch,Digital Crown和Taptic Engine等新技术.
在梳理了WatchKit框架文档之后,我没有提到使用Taptic Engine.有没有办法让开发人员使用它?也许他们还没有实现它,它可能会在iOS 8.2的更新版本中出现,但我不认为是这种情况.我错过了什么?
是否可以在UITableView或UIScrollView中添加捕捉位置?我的意思是,如果我按下按钮或调用某种方法来自动滚动到某个位置,我的意思是如果我滚动滚动视图或桌面视图围绕特定点,比如说0, 30
,它将自动捕捉到它并保持那里?因此,如果我的滚动视图或表格视图滚动,然后用户放入中间0, 25
或0, 35
,它将自动"捕捉"并滚动到那里?我能想象在if语句也许把以测试位置在该领域无论是在scrollViewDidEndDragging:WillDecelerate:
或scrollViewWillBeginDecelerating:
UIScrollView的方法,但我不能确定如何在一个UITableView的情况下实现这一点.任何指导都将非常感谢.
我有一个简单的故事板,其中包含一个带有静态表视图控制器的导航控制器.我添加了一个视图控制器,并通过push segue将其连接到其中一个单元.我注意到的一件事是导航栏标题没有与后退按钮垂直居中UIBarButtonItem
.这是现在看起来的图像.
请注意,它全部与底部对齐.我想要的是,一种方法是向下移动标题或向上移动按钮.如果向上移动按钮,也应移动后退按钮箭头,并允许返回主表视图.
这是我用来UIBarButtonItem
在视图控制器中设置字体的代码(如果它有帮助):
[clearButton setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"ChalkboardSE-Regular" size:15], NSFontAttributeName, [UIColor whiteColor], NSForegroundColorAttributeName, nil] forState:UIControlStateNormal];
以下是我用来为app delegate中的后退按钮设置字体的方法didFinishLaunchingWithOptions:
:
[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor], NSFontAttributeName:[UIFont fontWithName:@"ChalkboardSE-Regular" size:15]}forState:UIControlStateNormal];
我已经创建了一个MFMailComposeViewController并且能够显示它但是一旦我按下取消按钮,取消按钮和发送按钮就会变灰并且不显示操作表.有什么我想念的吗?
MFMailComposeViewController *m = [[MFMailComposeViewController alloc] init];
[m setToRecipents:@[@"abc@example.com"]];
[m setSubject:@"Subject"];
[m setMessageBody:@"..." isHTML:YES];
[m setMailComposeDelegate:self];
[self presentViewController:m animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
这是一个截图:
那么我有什么遗漏或者我应该提交错误报告吗?
如果我写
int a = 1;
int b = 2;
if (a == b) {
//Do something
} else if (a > b) {
//Do something else
} else if (a < b) {
//Do something else
}
Run Code Online (Sandbox Code Playgroud)
而不是:
if (a == b) {
//Do something
}
if (a > b) {
//Do something else
}
if (a < b) {
//Do something else
}
Run Code Online (Sandbox Code Playgroud)
编译器解释代码或速度的方式有区别吗?我认为没有逻辑上的区别,但肯定有一个if else语句存在的原因.这只是一个单线突破差异.
如何在我的开头插入一个字节NSMutableData
?我知道有一个replaceBytesInRange:
方法,但只会替换字节.有很多insertXAtIndex:
方法,但没有一个是字节.我怎样才能做到这一点?我能想到这样做的一种方法是:
NSMutableData *theData = [NSMutableData dataWithBytes:myByte];
[theData appendData:myOriginalData];
myOriginalData = nil;
Run Code Online (Sandbox Code Playgroud)
但必须有更好的方法.
我也试过这个,但它不起作用:
char *sec = "Second!";
char *fir = "First!";
NSMutableData *theData = [NSMutableData dataWithBytes:(const void *)sec length:7];
[theData replaceBytesInRange:NSMakeRange(0, 0) withBytes:(const void *)fir];
NSString *str1 = [[NSString alloc] initWithData:theData encoding:NSUTF8StringEncoding];
NSLog(@"%@", str1); //Prints "Second!"
Run Code Online (Sandbox Code Playgroud) ios ×7
objective-c ×6
ios8 ×3
apple-watch ×1
c ×1
c++ ×1
colors ×1
fonts ×1
if-statement ×1
insert ×1
iphone ×1
nsdata ×1
nsrange ×1
uidatepicker ×1
uiscrollview ×1
uitableview ×1
uitextrange ×1