Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iPhone视图控制器横向/纵向旋转故障

iPhone视图控制器横向/纵向旋转故障
EN

Stack Overflow用户
提问于 2014-01-20 18:17:05
回答 1查看 427关注 0票数 0

我正在尝试为我的应用程序的不同子模式实现强制纵向/横向。为此,我有一个UINavigationController作为根控制器,并且每个子模式都有自己的视图控制器,可以是其中之一

代码语言:javascript
运行
AI代码解释
复制
@interface iosPortraitViewController : UIViewController

代码语言:javascript
运行
AI代码解释
复制
@interface iosLandscapeViewController : UIViewController

使用

代码语言:javascript
运行
AI代码解释
复制
-(BOOL)shouldAutorotate;
-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation;
-(NSUInteger) supportedInterfaceOrientations;

重载,并根据每个对象的方向类型正确设置。例如,iosLandscapeViewController::supportedInterfaceOrientations返回UIInterfaceOrientationMaskLandscape。

当应用程序中的子模式改变时,使用present / dismissViewController在根视图控制器上呈现相应的视图控制器,这会强制方向重新评估和调用重载的视图控制器类中的函数,并相应地调整自身的方向。

我的问题是,当我们切换到横向模式时,子模式视图的框架偏离了屏幕的左上角,这是它应该在的位置(这是一个显示背景图片的全屏视图)。

出于调试目的,如果我将该子模式的视图控制器更改为iosPortraitViewController,则视图信息为:

代码语言:javascript
运行
AI代码解释
复制
size = 480.000000 320.000000
bounds = 0.000000 0.000000 480.000000 320.000000
frame = 0.000000 0.000000 480.000000 320.000000
centre = 240.000000 160.000000
user interaction enabled = 1
hidden = 0
transform = 1.000000 0.000000 0.000000 1.000000 : 0.000000 0.000000

当处于横向模式时,视图信息是:

代码语言:javascript
运行
AI代码解释
复制
size = 480.000000 320.000000
bounds = 0.000000 0.000000 480.000000 320.000000
frame = 80.000000 -80.000000 320.000000 480.000000 
centre = 240.000000 160.000000
user interaction enabled = 1
hidden = 0
transform = 0.000000 -1.000000 1.000000 0.000000 : 0.000000 0.000000 

帧的80,-80原点是我遇到的问题--它应该是0,0。(如果有人能指出它是如何得到80的,-80也将不胜感激-我可以看到X,但不是Y)。

还要注意帧中的w和h是如何交换的,转换是一个旋转转换--从阅读来看,我猜UIWindow (总是处于纵向模式)已经将其应用到根视图控制器的视图转换中了?

我能做些什么来解决这个问题呢?我需要视图控制器视图的框架在正确的位置(即原点在0,0)。我尝试过硬编码,但它似乎不起作用,而且这也不是一个很好的解决方案-我更了解发生了什么,以及如何正确地修复它。

谢谢!

:-)

EN

回答 1

Stack Overflow用户

发布于 2014-04-11 15:08:27

要支持备用横向界面,必须执行以下操作:

  1. 实现了两个视图控制器对象。一个用于显示仅纵向界面,另一个用于显示用于UIDeviceOrientationDidChangeNotification通知的仅横向interface.
  2. Register。在处理程序方法中,根据当前设备方向呈现或取消备用视图控制器。

从苹果指南到Creating an Alternate Landscape Interface

也可以从指南中找到:

代码语言:javascript
运行
AI代码解释
复制
@implementation PortraitViewController
- (void)awakeFromNib
{
    isShowingLandscapeView = NO;
    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
    [[NSNotificationCenter defaultCenter] addObserver:self
                                 selector:@selector(orientationChanged:)
                                 name:UIDeviceOrientationDidChangeNotification
                                 object:nil];
}

- (void)orientationChanged:(NSNotification *)notification
{
    UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation;
    if (UIDeviceOrientationIsLandscape(deviceOrientation) &&
        !isShowingLandscapeView)
    {
        [self performSegueWithIdentifier:@"DisplayAlternateView" sender:self];
        isShowingLandscapeView = YES;
    }
    else if (UIDeviceOrientationIsPortrait(deviceOrientation) &&
             isShowingLandscapeView)
    {
        [self dismissViewControllerAnimated:YES completion:nil];
        isShowingLandscapeView = NO;
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21241282

复制
相关文章
在CentOS7上安装开源综合工具Yosys
Yosys是一个开源综合工具,支持Verilog 2005。代码地址:https://github.com/YosysHQ/yosys
ExASIC
2021/07/05
2K0
在CentOS7上安装开源综合工具Yosys
FPGA开源工具链
2、然后执行备份命令,执行 sudo cp sources.list sources.list.backup 对源文件内容进行备份,以防万一。
碎碎思
2020/07/28
1.8K0
FPGA开源工具链
verilog ifdef_verilog define
注意:feof判断文件结束是通过读取函数fread/fscanf等返回错误来识别的,故而判断文件是否结束应该是在读取函数之后进行判断。比如,在while循环读取一个文件时,如果是在读取函数之前进行判断,则如果文件最后一行是空白行,可能会造成内存错误。
全栈程序员站长
2022/11/16
1.6K0
Verilog
Verilog HDL通过对reg型变量建立数组来对存储器建模,可以描述RAM型存储器,ROM存储器和reg文件。数组中的每一个单元通过一个数组索引进行寻址。在Verilog语言中没有多维数组存在。 memory型数据是通过扩展reg型数据的地址范围来生成的。其格式如下: reg [n-1:0] 存储器名[m-1:0]; 或 reg [n-1:0] 存储器名[m:1]; 在这里,reg[n-1:0]定义了存储器中每一个存储单元的大小,即该存储单元是一个n位的寄存器。存储器名后的[m-1:0]或[m:1
瓜大三哥
2018/02/24
1.4K0
Verilog
Verilog流水线_verilog菜鸟教程
本文从四部分对流水线设计进行分析,具体如下: 第一部分什么是流水线 第二部分什么时候用流水线设计 第三部分使用流水线的优缺点 第四部分流水线加法器举例
全栈程序员站长
2022/09/21
6250
verilog vhdl混合_vhdl转换为verilog
step1. 用vhdlcom将所有的VHDL RTL代码编译成库 1.1 将所有的vhdl文件放到vhdl.f文件中,如: vhdl.f ——— my_design.vhd my_lib.vhd tb_my_design.vhd 1.2 编译成库 vhdlcom -f vhdl.f 编译完成后,在运行路径下可看到自动生成的一个库文件夹work.lib++ 注意: a) 一般情况下vhdlcom命令不需要加其他参数。若出现vhdl版本问题,可考虑 增加-vhdl08等参数:vhdlcom -vhdl08 -f verilog.f b) 编译后的log为vhdlcomLog/compiler.log c) -lib 参数可指定一个库名。不指定,则默认库命为work。所有的生成的库 的库名都是自由附加了”.lib++”后缀。对于混合仿真vhdl和verilog的库名要保持一致, 否则可能出现其中一个库无法识别的问题(verdi版本为2015,可能后续版本解决了该问 题)。例:vhdlcom -lib mylib -f vhdl.f,生成mylib.lib++库
全栈程序员站长
2022/11/08
1.2K0
verilog同步fifo_verilog 异步复位
在上篇文章:同步FIFO的两种Verilog设计方法(计数器法、高位扩展法)中我们介绍了FIFO的基本概念,并对同步FIFO的两种实现方法进行了仿真验证。而异步FIFO因为读写时钟不一致,显然无法直接套用同步FIFO的实现方法,所以在本文我们将用Verilog实现异步FIFO的设计。
全栈程序员站长
2022/09/21
5950
verilog同步fifo_verilog 异步复位
FPGA Verilog-1995 VS Verilog-2001
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。
FPGA技术江湖
2020/12/29
1.6K0
FPGA Verilog-1995 VS Verilog-2001
同步fifo的verilog代码_verilog 异步复位
  本文大部分内容来自Clifford E. Cummings的《Simulation and Synthesis Techniques for Asynchronous FIFO Design》,经过自己的一些改变,理论部分为转载,代码自己完成。
全栈程序员站长
2022/09/21
7000
同步fifo的verilog代码_verilog 异步复位
Windows 下 iCE40 FPGA 开源开发环境配置
收到碎碎思寄来的基于 iCE40UP5k 的 OpeniCE 板,经过一番尝试,我可以在 Windows 系统进行 FPGA 开发,在此将一些经验分享给大家。
碎碎思
2021/02/26
2.1K1
Verilog task学习
task被一段封装在“task-endtask”之间的程序。task通过调用来执行,而且只有在调用时才会被执行,如果定义了task,但是在整个过程中都没有调用它,那么这个task是不会执行的。调用某个task时可能需要它处理某些数据并返回操作结果,所以task应当有接收数据的输入端和返回数据的输出端。另外,task可以彼此调用,而且task内还可以调用函数。
FPGA开源工作室
2021/03/30
6680
Verilog语言入门
门声明语句格式: <门的类型>[<驱动能力><延时>]<门实例 1>[,<门实例 2>,…<门实例 n>];
全栈程序员站长
2022/07/22
6810
Verilog语言入门
verilog语言转vhdl语言_vhdl转换为verilog
1.下载后先运行X-HDL-4.2.1-Setup.exe文件,选择安装路径,注意路径中不要有中文。 2.运行crack_xhdl_4.2.1.exe文件,选择刚刚你安装XHDL的路径下的\bin文件夹,点击next—finish,出现success代表激活成功教程成功。 3.可能会要求你重启电脑,这时候同意重启就好了。 4.重启之后运行X-HDL。 5.可以选择VHDL转Verilog或Verilog转VHDL
全栈程序员站长
2022/11/08
1.9K0
verilog语言转vhdl语言_vhdl转换为verilog
verilog调用vhdl模块_verilog和vhdl哪个更好
以Verilog文件为顶层文件,调用VHDL模块,testbench为Verilog文件。 1、新建project 2、编写.vhd文件,FPGA_VHDL.vhd,文件名与模块名称一致;
全栈程序员站长
2022/11/08
2.3K0
verilog调用vhdl模块_verilog和vhdl哪个更好
Verilog 编写规范
在学习Python时,作者有一句话对我影响很大。作者希望我们在学习编写程序的时候注意一些业内约定的规范。在内行人眼中,你的编写格式,就已经暴露了你的程度。学习verilog也是一样的道理,一段好的verilog代码,在完成设计要求的前提下,还需要条理清晰,有对应的注解,对非作者而言应该是友好的。因为对数字IC设计也处于初级阶段,前期所写的基本是在搜集资料的基础上,添加一部分个人的理解,希望通过自己的不断学习,沉淀出自己独到的见解。
嘘、小点声
2021/12/16
7010
Verilog语言基础
VHDL: 语法严谨(Basic语言)、 行为与系统级抽象描述能力强、代码冗长、 编程耗时多;
zstar
2022/06/14
5080
Verilog语言基础
Verilog读写文件
在进行FPGA模块的开发过程中,常常需要对数据的处理过程进行行为仿真,以验证FPGA的功能逻辑是否正确,因此需要将FPGA行为仿真的结果与MATLAB或C/C++的处理结果进行对比验证。但需要对比的数据量比较大时,将输入输出结果数据存入文件进行对比是非常常用的方法。
全栈程序员站长
2022/09/01
2.8K0
Verilog读写文件
【Verilog HDL】Verilog的端口类型以及端口连接规则
共分为 input、output、和 inout 三种类型,所有的端口在声明时默认为 wire 型。
嘘、小点声
2021/12/10
2.4K0
xilinx verilog 语法技巧
在Vivado Design Suite中,Vivado综合能够合成多种类型的属性。在大多数情况下,这些属性具有相同的语法和相同的行为。
FPGA开源工作室
2019/10/29
1.7K0
Verilog开源项目总结
关于各种开源协议的对比,阮一峰的博客上有张图片可以参考。具体细节以协议条款为准,请咨询专业法律人士。
网络交换FPGA
2019/10/29
2.2K0
Verilog开源项目总结

相似问题

Yosys中的verilog参数计算

115

Yosys合成-这是照片吗?

116

用Yosys将verilog转换为aiger

15

合成Yosys的唯一异或门

14

Yosys ASIC合成流QoR/PPA度量

115
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档