我正在尝试使用横向模式的UIPicker开发一个应用程序,占用(几乎)屏幕的整个宽度(使用5或6个组件).你能告诉我如何设置UIPicker的大小.非常感谢您的帮助.
我有一个ViewController管理一个视图,其中我有一个表视图,一个ImageView和一个导航栏.当我把它放在横向模式时导航栏没有调整到32,它仍然保持到44我首先尝试在IB中使用自动调整但没有成功,然后我尝试将此代码放在ViewController中
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration {
//[super willAnimateRotationToInterfaceOrientation:orientation duration:duration];
CGRect frame = self.navigationController.navigationBar.frame;
if (UIInterfaceOrientationIsPortrait(orientation)) {
frame.size.height = 44;
} else {
frame.size.height = 32;
}
self.navigationController.navigationBar.frame = frame;
}
Run Code Online (Sandbox Code Playgroud)
但没什么.我该如何解决这个问题?
我的应用程序只是一个修改过的ImageViewer,可以选择缩放和拖动.包含修改后的Imageviewer有一个RelativeLayout(我想用作AbsoluteLayout).
然后,可以将新元素添加到布局中以将它们置于图像的某些点中.元素的位置(x,y)以像素为单位,因此我想没有其他方式可以通过编程方式添加它们,而不是使用XML.
然后,每次执行拖动或缩放操作时,都会更新这些元素的位置.
问题是,不知何故,图像的像素与RelativeLayout中的像素不匹配!因此项目"或多或少"位于但不在适当的位置(距离(0,0)越远,误差越大).
我已经尝试过的事情:
尝试不同的转换,因为问题可能与位图和布局之间的密度差异有关:
Resources r = getResources();
float x = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 100, r.getDisplayMetrics());
Run Code Online (Sandbox Code Playgroud)尝试在布局中使用不同的方法来设置边距:
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.leftMargin = (int) newPosition.x;
params.topMargin = (int) newPosition.y;
element.setLayoutParams(params);
Run Code Online (Sandbox Code Playgroud)我也想在XML中使用RelativeLayout的可用选项,但我真的无法以编程方式找到它,但我可以找到指定维度的方法,我的意思是:
android:layout_marginLeft ="50px" // or "50mm", or dp, or inches...
Run Code Online (Sandbox Code Playgroud)我正在编写一个iPhone应用程序,我在其中UIWebView
加载了一个响应式设计的网站.
我遇到的问题是当我将设备旋转到横向时:UIWebView
旋转但它保持与纵向模式相同的宽度.
我花了最后5个小时在网上搜索,我找到了一些我用过但没有成功的解决方案......
在我正在使用的html页面中
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
Run Code Online (Sandbox Code Playgroud)
我试过用
<meta name="viewport" content="width=device-width" />
Run Code Online (Sandbox Code Playgroud)
没有改变,在我的代码中我正在实现以下函数来处理旋转,但它什么都没有
- (void) didRotateFromInterfaceOrientation: (UIInterfaceOrientation)fromInterfaceOrientation
{
[self.myWebView stringByEvaluatingJavaScriptFromString:
[NSString stringWithFormat:
@"document.querySelector('meta[name=viewport]').setAttribute('content', 'width=%d;', false); ",
(int)self.myWebView.frame.size.width]];
NSLog(@"orientation width: %d", (int)self.myWebView.frame.size.width);
}
Run Code Online (Sandbox Code Playgroud)
我还检查了"缩放页面以适合"复选框,
(使用xcode 5,带有iphone4s和ios7)
状态栏是否始终隐藏在横向的iPhone X中?在模拟器中进行测试时,它不会像以前那样显示.
更新:Xcode 9.0.1中的iPhone X模拟器没有变化.
我正在开发一个有几个笔尖的iPhone应用程序,应该只是风景.
应用程序设置为通过Info.plist文件以横向模式启动.
我有两个视图控制器:
FirstViewController
和SecondViewController
.
对于其中的每一个,我都有一个nib文件,其中视图是横向的.两个视图控制器都MainView
作为插件添加到我的nib中,并且它们的视图被懒惰地初始化.
加载应用程序时,第一个视图按预期显示在横向中.但是,当我切换到第二个视图时,设备(或模拟器)保持横向,但视图旋转,就好像设备处于纵向模式,制动我的界面.
在这两个UIViewController
类中,我有以下代码:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return interfaceOrientation == UIInterfaceOrientationLandscapeRight;
}
Run Code Online (Sandbox Code Playgroud)
并切换视图,在我的app委托中我正在做:
[viewController.view removeFromSuperview];
[window addSubview:secondViewController.view];
Run Code Online (Sandbox Code Playgroud)
视图控制器连接的两个出口位置viewController
和secondViewController
位置.
这是第二个视图在IB中的显示方式: alt text http://img27.imageshack.us/img27/4898/picture1ni.png
这就是它在模拟器中的样子: alt text http://img402.imageshack.us/img402/4866/picture2wt.png
为什么第二个视图在横向显示但是界面旋转了?
我不想处理转换属性,因为这似乎有点过分.
此代码似乎不适用于横向模式:
Run Code Online (Sandbox Code Playgroud)EditText destinationSearch = (EditText) findViewById(R.id.destinationSearch);
destinationSearch.requestFocus(); InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(destinationSearch,InputMethodManager.SHOW_IMPLICIT);
有没有解决方案在横向模式下显示软键盘?
通常,在横向模式下,由导航控制器控制的导航栏会自动缩小其尺寸.
但我想防止这种自动化.
首先,我将导航栏设置为隐藏,并使用另一个不受导航控制器控制的导航栏.所以,我解决了这个问题.但我想找到一种方法来禁用横向上的导航栏自动调整而不使用另一个不受导航控制器控制的栏.
我知道纯CSS可以根据屏幕尺寸调整样式表,如下所示:
@media (max-width: 959px) {
/* styles for smallest viewport widths */
}
@media (min-width: 600px) and (max-width: 959px) {
/* styles for mid-tier viewport widths */
}
@media (min-width: 960px) {
/* original CSS styles */
}
Run Code Online (Sandbox Code Playgroud)
(来源)
是否可以使用纯CSS来检查横向或纵向显示?
我正在开发一个Android 输入法,我想我的键盘工作只有"平移和扫描"和"调整"的模式,而不是在"全屏"(如解释在这里),或至少要求比较喜欢"调整大小"模式.我知道有一种方法可以从EditText设置它,但我如何从IME请求它?有没有我可以调用onStartInputView
事件的方法?或者android系统如何决定IME使用哪种模式?
在横向模式下的其中一个音符应用程序中,默认IME不使用全屏模式,但我的是,所以应该有一些我无法找到的东西:S.也许它会检查键盘的高度?如果有,怎么样?我很感激任何想法,谢谢!
android landscape ime android-input-method android-inputtype