有没有办法在UITextField
中途之间垂直对齐文本UIControlContentVerticalAlignmentCenter
,UIControlContentVerticalAlignmentBottom
或者我是否必须使用其中一种?
我正在更改组件(特别是组件的数量和颜色),在我称之为pickerOne的UIPickerView中,因此在进行更改后,我调用:
[pickerOne reloadData];
Run Code Online (Sandbox Code Playgroud)
它似乎工作得很好但是,我收到了一个编译警告:
warning: 'UIPickerView' may not respond to '-reloadData'
Run Code Online (Sandbox Code Playgroud)
虽然这似乎有效,但我还应该使用其他方法重新加载数据吗?
谢谢
HIG(第47页)说我必须能够处理在电话呼叫或录音期间出现的双高状态栏.
我究竟如何处理这种情况?
我真的只有一个屏幕,当双倍高度状态栏显示时,带有工具栏的键盘会在文本字段下面显示 - 在其他屏幕上,事情只是有点蜷缩但可用.
如果我能检测到存在双高状态栏,我可以调整文本字段的位置或使它们暂时缩短,但是有可能检测到双高度状态栏何时存在?
编辑:也许如果有办法获得已知事物的绝对坐标,如导航栏,如果它是+20像素关闭,我会假设双高度状态栏存在.思考?
还有一个第二个问题,如果这个(或任何东西)有效,我只想隐藏常规状态栏
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO]
Run Code Online (Sandbox Code Playgroud)
但是我不想隐藏这两者 - 基本上是一种懒惰的方式,不必触摸我的任何一个屏幕 - 如果双重存在,通过隐藏常规状态栏再次使它成为单一.上面的代码会隐藏两者吗?
我有一个显示图像的webview,如下面的代码所示.该套装还有一个DGT64@2x.png,尺寸为128x128,可在iPhone4上使用.DGT64@2x.png永远不会显示.有没有办法显示/或取决于它是iPhone还是iPhone4?
<img src="DGT64.png" width="64" height="64" align="left" style="padding:2px;"/>
Run Code Online (Sandbox Code Playgroud) 在iOS4之前,我的应用程序的初始视图控制器将检查viewWillAppear中的密码开/关设置变量,如果设置为on,则会显示一个模态密码屏幕,该屏幕将保持不变,直到输入正确的密码或按下Home按钮.
使用iOS4,如果我的应用程序已经在后台,我希望用户感到很舒服,如果他们要将手机交给某人使用,则应用程序中包含的数据不易被访问.
由于应用程序可以返回到任何屏幕(应用程序最后一次打开的屏幕),我想我将使用UIApplicationWillEnterForegroundNotification到处使用本地选择器(重复的enterPasscode方法),每个都有正确的视图控制器来推送基于本地屏幕,但必须有一个更好的方法.
我可能在这里有一个轻微的概念误解.有人可以提出另一种方法,或者推动我继续下一步.我可以将此作为共享方法,但仍然知道要推送正确的本地视图控制器吗?
谢谢
编辑/ UPDATE:
简短版本:它有效,但可能仍有更好的方式(任何帮助赞赏)...
我用视图控制器创建了一个标准单例.
PasscodeView.h包含:
UIViewController *viewController;
@property (nonatomic, retain) UIViewController *viewController;
Run Code Online (Sandbox Code Playgroud)
PasscodeView.m包含:
@synthesize viewController;
Run Code Online (Sandbox Code Playgroud)
我把它放在AppDelegate中:
-(void)applicationWillEnterForeground:(UIApplication*)application {
PasscodeView *passcodeView = [PasscodeView sharedDataManager];
UIViewController *currentController = [passcodeView viewController];
NSLog(@"%@", currentController); //testing
EnterPasscode *passcodeInput = [[EnterPasscode alloc] initWithNibName:@"Passcode" bundle:nil];
[currentController presentModalViewController:passcodeInput animated:NO];
[passcodeInput release];
}
Run Code Online (Sandbox Code Playgroud)
以及我所有viewDidLoad中的以下内容,当我进入每个屏幕时更新当前视图控制器(只有2行,但似乎还有更好的方法):
PasscodeView *passcodeView = [PasscodeView sharedSingleton];
passcodeView.viewController = [[self navigationController] visibleViewController];
Run Code Online (Sandbox Code Playgroud)
我希望有一种方法可以从applicationWillEnterForeground获得当前的视图控制器,但我找不到它 - 这里的任何帮助仍然很感激.
为了保持一致性,我更改了一行并添加了一行以获得导航栏以匹配应用程序的其余部分并包含标题.
UINavigationController *passcodeNavigationController = [[UINavigationController alloc] initWithRootViewController:passcodeInput];
[currentController presentModalViewController: passcodeNavigationController animated:NO];
Run Code Online (Sandbox Code Playgroud) 使用下面的代码,我将plist中的文本放入textView.textView还没有第一响应者; 该文本最初仅供阅读.在iOS4中,goToEndOfNote代码将光标定位在文本的末尾并滚动到该位置.在3.1.3中,直到触摸屏幕才会滚动到结尾(除非需要更改或添加,否则不需要),使textView为firstresponder.我希望它在3.1.3中工作,就像在4.0中一样.请任何想法.谢谢.
...
self.temp = [[[NSMutableArray alloc] initWithContentsOfFile:myPlistPath] autorelease];
self.textView.text = [self.temp objectAtIndex:0];
[self goToEndOfNote];
//[self performSelector:@selector(goToEndOfNote) withObject:nil afterDelay:0.1];
}
- (void) goToEndOfNote {
NSUInteger length = self.textView.text.length;
self.textView.selectedRange = NSMakeRange(length, 0);
}
Run Code Online (Sandbox Code Playgroud) 我一直在用最初的闪屏愚弄,但决定不使用它.但是现在,虽然我从Resources中删除了Default.png,但当我启动应用程序时,启动画面仍会出现在模拟器中.
Default.png不在项目文件夹中,我关闭并重新打开Xcode,仍然有闪屏.关闭并重新打开模拟器,仍然有闪屏.我从模拟器中删除了应用程序,构建,并且启动画面仍然存在.
有任何想法吗?
我想知道状态栏何时会因为正在进行的电话呼叫而改变高度.所以我在UIApplicationDelegate中添加了以下内容:
-(void)application:(UIApplication *)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame {
NSLog(@"yup, got here");
}
Run Code Online (Sandbox Code Playgroud)
事实上,当我从应用程序的任何屏幕切换模拟器上的通话状态栏时,消息会显示在控制台中,但我想要做的是在双高度状态下移动另一个类中的uitextfield或2酒吧特别搞乱了一个屏幕.我在这个屏幕上自动调整没有运气.
所以我的问题是如何在AppDelegate中仅使用此方法为一个屏幕和一个屏幕实现代码?它在所有屏幕中都会闪光但我只需要一个屏幕.理想情况下,我只想在一个类中触发一个方法.
iphone ×8
cursor ×1
default.png ×1
image ×1
ios4 ×1
scroll ×1
statusbar ×1
uipickerview ×1
uitextview ×1
uiwebview ×1
xcode4 ×1