我很难在我的详细视图上实现简单的滚动。
使用主视图和详细信息视图,应用程序非常简单。
当用户在Master上点击一个项目时,详细信息视图会被更大的照片,博客文本等推送。
我希望整个详细信息视图滚动,因此如果图片很高,或者文字很长,他们可以垂直滚动查看/阅读更多内容。我不希望用户单独滚动这些项目。它应该像网页滚动一样。
目前我的详细信息视图加载正常但我无法滚动。
我的 DetailViewController.h
#import <UIKit/UIKit.h>
@interface DetailViewController : UIViewController {
IBOutlet UILabel *postTextLabel; // wired to Text Label
IBOutlet UILabel *postAuthorNameLabel; // wired to Author Label
}
@property (strong, nonatomic) id detailItem;
@end
我的 DetailViewController.m
#import "DetailViewController.h"
@interface DetailViewController ()
- (void)configureView;
@end
@implementation DetailViewController
- (void)viewDidLoad
{
[super viewDidLoad];
[self configureView];
}
- (void)configureView
{
if (self.detailItem) {
NSDictionary *post = self.detailItem;
NSString *postText = [post objectForKey:@"post_text"];
NSString *postAuthorName = [post objectForKey:@"post_author_name"];
postTextLabel.text = postText;
postAuthorNameLabel.text = postAuthorName;
}
}
@end
IB上的结构:
关于使这项工作失踪的想法?
答案 0 :(得分:2)
我会做以下事情:
1)(可选)将视图拖动到侧面的scruture列表中的视图中,将视图转换为滚动视图。
2)将scrollView链接到你的viewcontroller .h并将Outlet连接设为这样的
@property (strong, nonatomic) IBOutlet UIScrollView *scroller;
(如果手动添加,请确保在.m中添加@synthesize) 并确保它在IB中连接!
3)在viewDidLoad方法
中设置scrollview的内容大小scroller.contentSize = CGSizeMake(320,550);
注意:IBOutlet UILabel * postTextLabel;实际上应该是一个UITextView,所以你可以访问ContentSize 这将允许以下内容。
CGRect frame = postTextLabel.frame;
frame.size = postTextLabel.contentSize;
postTextLabel.frame = frame;
scroller.contentSize = CGSizeMake(320, frame.size.height+200);//200 or how ever much space is above the textView
并且只有在使用UITextView
时才有效用于ipad用768或1024替换320,或取决于方向
在IB中连接它的最佳方法就是按住控制并拖动到.h文件 并确保它像图片中一样设置为自动,并指向&gt;你的观点.h 像这样添加它也会自动为你添加@synthesize。
确保在此处检查UserInteractionsEnabled以查看我们的scrollview