问题标签 [uiview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - 在哪里确定 UIView 大小
摘要:在初始化那个视图时应该如何UIViewController
知道它的 UIView 实例的大小?
UIView 的专用初始化方法是initWithFrame:(CGRect)frame
方法。这将为新创建的 UIView 设置框架。UIViewController's
如果请求视图控制器的视图,则可以从 loadView 方法调用此方法。UIViewController
关于子类化和视图大小的状态文档:
在为视图层次结构创建视图时,您应该始终设置视图的自动调整大小属性。当视图控制器显示在屏幕上时,它的根视图通常会调整大小以适应可用空间,这可能会根据窗口的当前方向和其他界面元素(例如状态栏)的存在而有所不同。
因此,UIViewController
实例应该设置这些属性。到目前为止这么好,UIViewController
到目前为止不必知道它的观点有多大或将有多大。
当UIViewController
请求 a 的视图且视图属性为 nil 时,调用视图控制器的 loadView 方法。现在有一个问题,因为UIView
需要初始化,但是视图控制器仍然不知道视图应该是什么大小。你应该初始化多大的视图?您在代码中的哪个位置确定视图大小?
您可以使用零矩形 ( CGRectZero
) 初始化视图:
让调用者像这样设置视图框架:
这会从视图控制器 (viewController.view) 请求视图,从而使用 loadView 方法加载其视图。此 loadView 方法使用CGRectZero
. 然后调用者设置它的框架(view.frame = ...)
问题是视图上的 frame 属性设置了两次,如果您的自定义UIView
在 setFrame 方法中进行一些高级布局(例如放置和调整子视图大小),可能会导致更多的工作。您可以通过创建一个专用的初始化方法来防止这种情况,该方法UIViewController
已经向调用者询问了一个 CGRect,您将其存储在一个 ivar 中。在调用 loadView 方法时,您使用此 ivar 创建视图。
去这里的好方法是什么?设置视图的框架两次(用 初始化CGRectZero
,然后设置),或者给UIViewController
一个新的初始化方法和一个 CGRect (从而给它一个框架属性)?或者我错过了什么,还有其他可能性吗?
uiview - 如何在 UIView 中删除子视图
在我的应用程序中有两个视图,它们的名称是 Loginview 和 sampleview
我添加到的这个登录视图[self.view addsubview:Loginview];
登录操作后。我将 self.view 更改为[self.view addsubview:sampleview];
但是那个时候loginview也在显示..
避免这种情况。如何删除子视图self.view
?
iphone - 我可以在释放 ViewController 的同时保留 View 吗?
我正在尝试将新视图加载到现有视图控制器中,但我想从 xib 文件中加载该视图。我的计划是创建第二个 viewController(下面代码中的 viewController1),然后保留它的视图并释放我刚刚创建的那个 viewController。我希望 viewController 会被释放并且视图会一直存在,但这似乎没有发生。
问题 1:如果视图控制器被解除分配,无论视图的保留计数是多少,它的关联视图是否也会被解除分配?在下面的示例代码中,您可以看到视图在突然消失之前的保留计数为 13。
问题2:为什么保留视图会使它的retainCount 增加3?
iphone - 在主视图上方翻转子视图
我正在尝试构建一个位于主视图上方的子视图,该子视图大约是主视图大小的 3/4。当按下按钮时,子视图应翻转到另一个子视图。我很接近,但有两个问题。
第一个问题是第一次按下翻转按钮时,第二个子视图以全屏开始并缩小到指定的帧大小,而不是渲染任何翻转动画。
一旦第二个视图被渲染,我就可以在第一个和第二个视图之间翻转(我添加了第二个按钮来翻转以进行测试)。
我的第二个问题是,当视图翻转时,新视图在翻转之前加载,然后发生翻转。在此之前我已经构建了翻转视图,但只有当整个屏幕都是视图时才能正常工作。
这是我的主视图控制器中的代码:
这是两个按钮的代码:
非常感谢对我的任何一个问题的任何帮助!
objective-c - UIWindow 和 UIView addSubview 问题
addSubview 方法是否实际将视图加载到应用程序中?我问的原因是因为我的应用程序中有两个两个视图。应用程序委托将两个视图添加为子视图,然后将其中一个视图放在前面。现在,我在每个视图的每个 viewDidLoad 方法中都有一个打印语句。当我运行应用程序时,应用程序委托将视图加载为子视图,并且在加载每个视图时,我实际上看到控制台打印出我放置在每个 viewDidLoad 方法中的语句。这应该是这样做的吗?
iphone - 调整通话状态栏的大小?
如何根据笔尖的通话状态栏调整视图大小?
我认为它只是设置调整大小属性,但没有为根 UIView 启用它们。
(我认为我的主要问题是我不知道其中的任何一个被称为什么;我在任何文档中都找不到对通话状态栏的任何引用,除非它谈到了模拟器菜单命令。)
iphone - 在方法中运行时,从 nib 加载的视图不会更新 UILabel 的内容
我在更新创建的“myInfoBox”对象的内容时遇到问题,以便在完成某些后台进程时显示。
在委托方法中,我正在创建一个新的 viewController:
以下是我对“myFirstViewController”的实现,它创建了一个“infoBox”类的实例(稍后我将展示它的代码):
在测试中发生的事情是,当 -(void)loadMainView 方法完成时,myInfoBox 对象在屏幕上创建,然后我可以在屏幕上看到后台的“myInfoBox”,而前面的 alertView(用于测试.. .) 此时屏幕是响应式的,我可以选择“是”,一旦选择“是”,就会调用委托方法。正如我在源文件中评论的那样,我使用断点监视模拟器并遵循代码,当我仍在 - (void)userInitialSetupMainThread 方法中时,更改的标签值不会被反映,但一旦完成视图更新使用最新设置的 .text 值!!呸呸呸。。
此外,myInfoBox 类的来源:
对不起,很长的帖子:)请协助!
iphone - UIView alpha 问题
我在设置 UIView 子类对象的 alpha 值时遇到问题。有什么建议么?
我有 UIView 项目,我正在操纵其 alpha 属性来控制亮度。我正在使用 UISlider 控件在 UIView 子类中设置 alpha 属性的值,如下所示:
父对象中的 sliderValueChanged 方法改变了另一个 UIView 子类对象 OverlayView 的 alpha 值。父对象是 UIViewController 的子类 myViewController。滑块位于名为 SliderView 的第二个 UIView 子类中。
这似乎有效。当我尝试切换 UISlider 的 .hidden 属性时出现问题。当我将 .hidden 属性更改为 YES 时,
滑块消失,但 OverlayView 对象的 alpha 值重置为 0.0。滑块的值不会改变。当 UISlider 对象的隐藏属性发生变化时,我希望通过
sliderValueChanged 方法设置的 OverlayView 的 alpha 属性保持不变。
关于我做错了什么的任何建议?谢谢。
iphone - 没有硬编码位置的动态按钮布局
我想实现一个实现 1-3 个按钮的视图(它实际上将进入 UITableView 的页脚)。我希望这些按钮的布局(以及按钮本身的大小)根据显示的按钮而改变。当您查看特定联系人时,我想要的几乎确切行为的示例位于“联系人”应用程序的“信息”屏幕底部(单击“添加到收藏夹”时会消失,其他按钮会展开以占用漂亮动画中的可用空间)。
当我在不同的布局场景中运行时,我正在对所有这些值进行硬编码,我只是想……“这不是我应该这样做的方式。”
甚至似乎 Interface Builder 有一些功能可以在标尺选项卡中为我执行此操作,但如果我能弄清楚它们是如何在手机上工作的(如果它们工作的话),我会被诅咒的。
有没有人有任何建议或在线教程可以让我找到正确的方向?
非常感谢。
iphone - 在 3 个或更多视图之间切换
我是 iPhone 开发的新手,我真的很喜欢这个。我喜欢它,但有一件事让我很烦。如何不断切换视图?我知道如何从创建新项目时给我的第一个视图到我制作的视图,但是我如何通过这两个窗口?如何从我创建的视图中获取?
我有这个应用程序,它有一个带有 NavigationController 的主窗口,其中包含 UITableViewController。这是我的主菜单。我在右上角有一个“+”按钮,它给了我一个新的视图,但是我如何从这里获得一个新的视图?当用户选择要添加的内容时,如何推送新视图?
希望有人能理解我的问题。一些文档的链接会很好。我到处都看过。