【问题标题】:IOS- how to set frames for UIscrollview for universal devices on storyboard?IOS-如何在情节提要上为通用设备的 UIscrollview 设置框架?
【发布时间】:2015-09-16 09:35:03
【问题描述】:

我正在做一个项目,我必须使用UIScrollView 进行页面滚动。 我想要通用设备(iPhone,iPad)的滚动视图我不知道如何为其设置框架请帮助

我使用了一些方法,但它们不起作用我在viewDidLoad 方法中使用以下代码如何为所有设备设置它的框架

- (void)viewDidLoad
{
    mainscrollview = [[UIScrollView alloc]init];
    mainscrollview.showsVerticalScrollIndicator=YES;
    mainscrollview.scrollEnabled=YES;
    mainscrollview.userInteractionEnabled=YES;
    [self.view addSubview:mainscrollview];

    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

【问题讨论】:

  • 首先,对[super viewDidLoad] 的调用应该是viewDidLoad 实现中的第一个调用。其次,您在问题标题中提到了storyboard,但似乎您正在从代码中添加滚动视图 - 那么它是哪一个? :) 最后 - 你永远不会为滚动视图设置任何框架 - 你应该使用 initWithFrame: 或使用 mailscrollview.frame = (...)
  • 你试过CGRect screenSize = [[UIScreen mainScreen]bound]; [mainscrollView setframe:screenSize];

标签: ios objective-c iphone uiscrollview


【解决方案1】:

http://natashatherobot.com/ios-autolayout-scrollview/看到这个链接你会得到一些帮助。

【讨论】:

  • 在 SO 上不鼓励仅链接答案 - 您至少应该引用最相关的部分。
【解决方案2】:

使用此代码为所有设备设置UIScrollView 框架。

mainscrollview = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height)];

【讨论】:

  • 这不考虑视图控制器(即导航栏)的可用空间。最好这样做:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)
  • @Losiowaty 这对我来说导航也有用,因为 UINavigation 会根据半透明属性自动调整大小。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-10
  • 2012-04-18
相关资源
最近更新 更多