我是一名经验丰富的开发人员,但对iOS来说相对较新.
我在iPad应用程序上遇到了一些问题,我的视图没有响应屏幕底部三分之一的按钮触摸.触摸其他按钮工作正常,所以我知道我的视图在加载时正确连接(我在IB中创建它们.)我在模拟器和设备上都得到相同的行为.
这是一个仅面向横向的应用程序,我正在使用[NSBundle LoadNibNamed:]加载视图.这是应用程序中唯一的非常重要的部分,我想我已经跳过所有适当的环节:
横向可能没有关系,但我想我应该提一下,因为这是我发现的唯一一件小事,我从板上看到其他人也发现了这个问题.
有没有人有任何想法?
谢谢.
我需要在纵向和横向模式下读取音调值(手机向后和向前倾斜了多少)。在人像中使用下面的代码波纹管,当手机保持面朝上平放时,我从value [1]得到的值是0.0,直立时为-90,设备面朝上时为180。到现在为止一切都很好...当设备处于横向模式时,问题就来了。此时,我正在使用value [2]来测量设备的倾斜度,但是问题在于值:当手机保持平放状态(确定)时,值为0;当手机直立放置(确定)时,值为0;但是当我继续进行操作时,则变为90。移动值再次下降到90以下(80、75等),因此基本上我无法区分这两个位置,因为值相同。所以我做错了
与此处的问题相同:http ://groups.google.com/group/android-beginners/browse_thread/thread/c691bbac3e294c7c?pli=1
我有以下代码:
private void ReadOrientationSensor(){
final SensorManager sensorManager;
final TextView text = (TextView) this.findViewById(R.id.TextView01);
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
SensorEventListener listener = new SensorEventListener() {
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
public void onSensorChanged(SensorEvent event) {
float x,y,z;
x=event.values[0];
y=event.values[1];
z=event.values[2];
//text.setText(String.valueOf(event.values[0]));
text.setText("x: " + x + " y: " + y + " z: " + z);
}
};
sensorManager.registerListener(listener, sensor,SensorManager.SENSOR_DELAY_FASTEST);
Run Code Online (Sandbox Code Playgroud)
}
我目前的设计要求在纵向和横向视图之间进行一些很酷的动画.数据表示相当复杂,因此在图形和数据元素之间,屏幕上可能同时有大约30个按钮和标签.我创建了一个设计非常紧密的界面......现在我正在为景观视图布置元素.到目前为止,我发现这样做的唯一方法是在代码中实际布局横向视图,例如:
-(void) positionViews {
UIInterfaceOrientation destOrientation = self.interfaceOrientation;
if (destOrientation == UIInterfaceOrientationPortrait || destOrientation == UIInterfaceOrientationPortraitUpsideDown) {
//---if rotating into PORTRAIT mode
timeBGbox.frame = CGRectMake(14, 88, 134, 14);
targetTime.frame = CGRectMake(0, 99, 150, 29);
energyBGbox.frame = CGRectMake(156, 88, 68, 14);
targetEnergy.frame = CGRectMake(154, 99, 70, 29);
speedBGbox.frame = CGRectMake(234, 88, 68, 14);
targetSpeed.frame = CGRectMake(226, 99, 48, 29);
speedLabel.frame = CGRectMake(264, 99, 40, 36);
} else {
//---if rotating to LANDSCAPE mode
timeBGbox.frame = CGRectMake(156, 12, 152, 14);
targetTime.frame = …Run Code Online (Sandbox Code Playgroud) 我搜索高低,我不确定我出来的是处理这个问题的最佳方式(尽管它似乎是唯一的一个).
根据想要使用muliple笔尖来实现不同的iphone接口方向,我实现了相关的方法,一切似乎都运行良好.不幸的是,我必须处理UINavigationController,每个页面都必须支持纵向和横向模式,并在两种模式下重现相同的功能.这意味着如果用户在某个时刻决定从纵向切换到横向,整个应用程序应该允许他以他选择的模式在页面中来回导航.
显然,缺少的文档是如何处理这个问题.在我的视图中,我有许多带有附加showChild方法的按钮,用于执行导航.一切都适用于纵向模式(据我所知,这是默认模式).方法如下:
- (IBAction)showChild:(UITapGestureRecognizer *)sender {
UIView *view = [sender view];
PortraitViewController *nextPortraitViewcontroller = [[PortraitViewController alloc] initWithNibName:@"Portrait" bundle:nil];
[self.navigationController pushViewController:nextPortraitViewcontroller animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
但是当谈到景观模式时,我会得到喜忧参半的结果.LandscapeViewController类中的showChild:方法完全相同,它构建一个从PortraitViewController开始的视图,并将其推送到导航控制器.这一切看起来都很顺利,但是当我向后导航时,我得到的是前面的PortraitViewController,而不是景观,而且它的子视图都散布在周围,而不是我放在它们的位置.
现在的问题是:因为Apple似乎并不真正关心文档和最佳实践(假设整个机制远非理想,我可以说这来自人机交互设计和编程的背景)是什么correc - Apple这样做的方式?
landscape portrait uitabbarcontroller uinavigationcontroller ios
可能重复:
如何在xCode 4界面生成器工具中旋转窗口?
是否可以旋转:

到横向模式.我希望我的应用程序只支持横向模式,因此如果我可以使用Xcode处理横向模式会更容易.我知道如何在iPhone和iPad模拟器上旋转视图,但实际上我想在Xcode中旋转它.
似乎带有导航栏的视图的模拟度量基于纵向模式导航栏的尺寸.编译和运行应用程序时,横向导航栏实际上比纵向模式更细(不太高).
除了以编程方式添加我的导航栏,同时在我的XIB中放置一个纤薄的占位符导航栏,同时放弃模拟指标时,还有其他方法可以解决此问题吗?那将是一种耻辱,因为我喜欢使用模拟指标.
首先,也许"风景"并不是更好的词语,但我现在想不到另一个.
我正在使用以下代码在ImageView中显示图像,但我在"肖像"(抬头)中使用设备拍摄的图像显示为侧面.
我的代码:
mImageView = (ImageView) findViewById(R.id.iv_photo);
Uri u = Uri.parse("content://media/external/images/media/7");
mImageView.setImageURI(u);
Run Code Online (Sandbox Code Playgroud)
XML:
<ImageView
android:id="@+id/iv_photo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
Run Code Online (Sandbox Code Playgroud)
是的,"content:// media/external/images/media/7"是一条有效路径.
有任何想法吗?
我AutoCompleteTextView在我的应用程序中使用自定义适配器,它在纵向模式下工作得很好.然而,在水平模式下,软件键盘占用大部分屏幕和文本视图,使用覆盖按钮而不是适配器提供的视图.
我找不到关于它如何在幕后工作的明确文档.似乎在横向模式中AutoCompleteTextView绕过了适配器的getView()方法,getItem()使用原始字符串来使用和渲染项本身.
为了使事情变得更糟,似乎在AutoCompleteTextView准确地呈现两个自动完成提示列表:同时标准下拉列表和覆盖按钮(如果我们设置imeOptions flagNoExtractUi以防止AutoCompleteTextView在景观中扩展,这是很明显的).
我想在两种情况下提供我自己的视图 - 但我设法只为目前为止的下拉菜单做了.是否有任何更改为重叠列表提供自定义视图?
对不起,但由于排名较低,我无法发布图片.如果有人需要,我可以寄给他们.
我读了文章 Android WebView:处理方向更改
并按照提示建立一个MainActivity项目
package com.example.testvideo1;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.webkit.WebView;
import android.os.Build;
@SuppressLint("NewApi")
public class MainActivity extends ActionBarActivity {
private VideoEnabledWebView webView;
private VideoEnabledWebChromeClient webChromeClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set layout
setContentView(R.layout.activity_main);
// Save the web view
webView = (VideoEnabledWebView) findViewById(R.id.webView);
// Initialize the VideoEnabledWebChromeClient and set event handlers
View nonVideoLayout = findViewById(R.id.nonVideoLayout);
// Your own …Run Code Online (Sandbox Code Playgroud) 我希望在全屏模式下以横向模式播放视频.我的应用程序锁定在纵向模式.如何实现这一点.请帮我.提前致谢