objective-c - 无法在iOS中实现简单的 View 滚动

标签 objective-c ios ios5 uiview uiscrollview

我很难在详细 View 上实现简单的滚动。

该应用程序非常简单,具有主视图和详细 View 。

当用户点击“Master”上的某个项目时,“详细信息” View 会推送更大的照片、博客文本等。

我希望整个详细信息 View 能够滚动,因此如果图片很高或文本很长,他们可以垂直滚动以查看/阅读更多内容。我不希望用户单独滚动这些项目。感觉应该像网页滚动。

目前我的详细信息 View 加载正常,但我无法使其滚动。

我的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 结构:

enter image description here

对于要完成这项工作还缺少什么,您有什么想法吗?

最佳答案

我会执行以下操作:

1)(可选)将 View 拖到侧面的 scruture 列表中的 View 中,将其转换为 ScrollView 。

2)将scrollView链接到你的viewcontroller.h并建立一个像这样的Outlet连接

@property (strong, nonatomic) IBOutlet UIScrollView *scroller;

(如果手动添加,请确保在 .m 中添加 @synthesize) 并确保它已在 IB 中连接!

3)在viewDidLoad方法中设置scrollview的contentsize

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,将 320 替换为 768 或 1024,或根据方向而定

在IB中连接它的最佳方法是按住control并拖动到.h文件 并确保将其设置为自动,如图所示,并指向> View 的.h。 像这样添加它也会自动为您添加@synthesize。

enter image description here

enter image description here

确保我们的 ScrollView 在此处选中 UserInteractionsEnabled

关于objective-c - 无法在iOS中实现简单的 View 滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12663577/

相关文章:

objective-c - iOS 应用程序在使用 Xcode 4.2 和 iOS 5 进入 main() 之前崩溃

ios - 用动画改变帧

ios - ITMS-90078 : Missing Push Notification Entitlement

ios - 使用 ARKit 3 进行手指和面部跟踪

iphone - 来自纹理的粒子系统不加载

iphone - 当我返回我的应用程序而不检查状态栏框架时,我如何知道电话何时在通话中?

iphone - iOS向前兼容或向后兼容

ios - 在底部为 UITableView 添加页脚

ios - bezierPath moveToPoint 坐标系错误

objective-c - CorePlot 图上的点