我正在使用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/

10-13 02:18