我是iPad开发人员的新手,
当我在Portrait
模式下看到我的应用程序时,我在我的应用程序中创建了一个注册表单,
我能够看到没有滚动的整个表单,但是当我在Landscape
模式中看到相同的表单时,我无法看到位于页面底部的部分,因为滚动应该在那里看到底部
:
在我替换<{p>时的.h
文件中
@interface ReminderPage : UIViewController{
...
...
}
带有:UIViewController
的 :UIScrollView
然后当我在我的.m
文件中添加标签时,
UILabel *Lastpaidlbl = [[[UILabel alloc] initWithFrame:CGRectMake(70 ,400, 130, 50)]autorelease];
Lastpaidlbl.backgroundColor = [UIColor greenColor];
Lastpaidlbl.font=[UIFont systemFontOfSize:20];
Lastpaidlbl.text = @"Lastpaid on :";
[self.view addSubview:Lastpaidlbl];
我在最后一行收到错误在classname类型的对象上找不到属性视图。 我无法在视图中添加标签。
我们将不胜感激。
答案 0 :(得分:6)
问题似乎是在询问如何将屏幕上的所有组件放在UIScrollView中,而不是放在UIView中。使用Xcode 4.6.3,我发现我可以通过以下方式实现:
最终结果是在现有的主UIView中嵌入了一个新的滚动视图,UIView的所有以前的子视图现在都是UIScrollView的子视图,具有相同的定位。
答案 1 :(得分:4)
如果要用UIScrollView替换UIViewController,则必须对代码进行一些重构。你得到的错误只是一个例子:
语法:
[self.view addSubview:Lastpaidlbl];
如果self
是UIViewController,则是正确的;因为你把它改成UIScrollView
,你现在应该这样做:
[self addSubview:Lastpaidlbl];
对于您的代码,您将会遇到很多类似的更改,并且会遇到一些问题。
另一种方法是:
实例化UIScrollView(不是从它派生);
将您的UIView(例如您已定义)添加到滚动视图中;
定义滚动视图的contentSize
,以包含您拥有的整个UIView。
滚动视图充当现有视图的容器(将控件添加到滚动视图,然后将滚动视图添加到self.view);这样,您就可以将它集成到现有的控制器中:
1. UIScrollView* scrollView = <alloc/init>
2. [self.view addSubview:scrollView]; (in your controller)
3. [scrollView addSubview:<label>]; (for all of your labels and fields).
4. scrollView.contentSize = xxx;
我认为后一种方法会容易得多。
答案 2 :(得分:0)
请将所有UIComponents放入UIScrollview,然后它将开始滚动。
请查看内容大小。请根据设备的方向进行更改。
答案 3 :(得分:0)
您正在对UIScrollView
进行子类化,因此没有self.view
,因为已经self
是视图(滚动视图)。您不需要子类化scrollview,您只需将组件嵌入到ivar滚动视图中并设置其contentSize
(在您的情况下,您必须在设备处于横向模式时启用滚动)。在界面构建器中,您可以一键嵌入所选元素,编辑器 - &gt;嵌入 - >滚动视图。
答案 4 :(得分:0)
首先创建 scrollview
UIScrollView * scr=[[UIScrollView alloc] initWithFrame:CGRectMake(10, 70, 756, 1000)];
scr.backgroundColor=[UIColor clearColor];
[ self.view addSubview:scr];
第二次
更改[self.view addSubview:Lastpaidlbl];
to
[scr addSubview:Lastpaidlbl];
<强>第三强>
设置高度取决于内容
UIView *view = nil;
NSArray *subviews = [scr subviews];
CGFloat curXLoc = 0;
for (view in subviews)
{
CGRect frame = view.frame;
curXLoc += (frame.size.height);
}
// set the content size so it can be scrollable
[scr setContentSize:CGSizeMake(756, curXLoc)];
最后
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Override to allow orientations other than the default portrait orientation.
if (interfaceOrientation==UIInterfaceOrientationLandscapeLeft || interfaceOrientation==UIInterfaceOrientationLandscapeRight) {
self.scr.frame = CGRectMake(0, 0, 703,768);
} else {
self.scr.frame = CGRectMake(0, 0, 768, 1024);
}
return YES;
}