我正在使用ProMotion,BubbleWrap,Teacup和GeoMotion。无法找到从导航栏的CGRectMake原点到屏幕右边缘的距离。我想同时适合人像和风景。将导航栏放置在拆分屏幕的整个顶部也遇到了麻烦,但是我会首先解决此问题。谢谢。
使用Sublime文本编辑器,自动完成功能似乎可以向我显示所有可用的方法,无论我调用它们是什么。
class AppDelegate < PM::Delegate
include PM::Styling
status_bar true, animation: :none
def on_load(app, options)
open_split_screen MenuScreen, DetailScreen
end
def set_appearance_defaults
UINavigationBar.appearance.tintColor = hex_color("61B637")
end
end
class MenuScreen < PM::TableScreen
searchable placeholder: "Search states"
title "Menu"
def table_data
[{
title: "",
cells: Menu.all.map { |state| { title: state.name, action: :tapped_state } }
}]
end
def tapped_state(args={})
PM.logger.debug args
end
def states_tapped
end
def help_tapped
end
end
class DetailScreen < PM::Screen
include DetailStyles
title "Detail"
def on_load
#UIScreen.mainScreen.bounds ???
width = ???
naviBarObj = UINavigationBar.alloc.initWithFrame(CGRectMake(0, 0, width, 44))
self.view.addSubview(naviBarObj)
cancelItem = UIBarButtonItem.alloc.
initWithTitle("Cancel",
style:UIBarButtonItemStyleBordered,
target:self,
action:'cancelButtonPressed')
doneItem = UIBarButtonItem.alloc.
initWithTitle("Done",
style:UIBarButtonItemStyleBordered,
target:self,
action:'doneButtonPressed')
navigItem = UINavigationItem.alloc.initWithTitle("Navigation Title")
navigItem.rightBarButtonItem = doneItem
navigItem.leftBarButtonItem = cancelItem
naviBarObj.items = NSArray.arrayWithObjects(navigItem, nil)
self.view.backgroundColor = BW.rgb_color(100, 150, 50)
end
def cancelButtonPressed
true
end
def doneButtonPressed
true
end
def states_tapped
true
end
def help_tapped
true
end
end
最佳答案
如果您试图将视图延伸到详细信息屏幕:
self.view.frame.size.width
如果您想在整个屏幕上使用它:
UIScreen.mainScreen.bounds.size.width
但是我实际上建议您将详细视图控制器设置为导航控制器(因为我很确定您希望在详细视图内进行导航),然后将ACTUAL详细视图控制器作为当前的详细视图控制器,那么导航栏将为您处理。
最后一种选择,正如我看到的那样,您正在使用“完成”和“取消”,您实际上可能需要的是模式视图,而不是导航控制器。如果要显示某些东西,然后取消或完成某个动作,则可以使用模式视图。
关于ios - Promotion::SplitScreen中UIScreen元素的动态宽度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19481264/