Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在UIScrollView中添加多个UIView_Ios_Uiscrollview - Fatal编程技术网

Ios 如何在UIScrollView中添加多个UIView

Ios 如何在UIScrollView中添加多个UIView,ios,uiscrollview,Ios,Uiscrollview,我有一个绘制饼图的UIView,我想以编程的方式在UIScrollView中放置3个或4个图表。我该怎么做 我的h文件是这样的 @class PieChart; @interface ViewController : UIViewController { } @property (weak, nonatomic) IBOutlet UIScrollView *scrollView; 和m文件 - (void)viewDidLoad { [super viewDidLoad];

我有一个绘制饼图的UIView,我想以编程的方式在UIScrollView中放置3个或4个图表。我该怎么做

我的h文件是这样的

@class PieChart;

@interface ViewController : UIViewController {

}

@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
和m文件

- (void)viewDidLoad
{
    [super viewDidLoad];


[scrollView setBackgroundColor:[UIColor blackColor]];
    [scrollView setCanCancelContentTouches:NO];
    scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
    scrollView.clipsToBounds = YES;     
    scrollView.scrollEnabled = YES;
    scrollView.pagingEnabled = YES;


         PieChart *chart = [[PieChart alloc]initWithFrame:CGRectZero];
        [chart setFrame:CGRectMake(100, 100, 200, 200)];

    [scrollView addSubview:chart];

}

将多个子视图添加到
UIScrollView
就像添加单个子视图一样;使用
添加子视图:
。您遇到了什么问题?

您可以通过以下方式添加它:

[scrollView addSubview:singleView];

如果需要将子视图添加到视图中,则需要使用
[view addSubview:subview]
。这是惯例。 了解框架和边界(视图和子视图的坐标系):

据我所知,由于滚动视图的内容大小,您有一个问题。请在此处阅读更多信息:


希望有帮助。

我现在做的是
PieChart*chart=[[PieChart alloc]init]
[滚动视图添加子视图:图表]
失败如果在较大的scrollview中为三个或四个饼图设置框架,则应该可以。注意,您不必将框架限制在屏幕的尺寸上,而是限制在滚动视图的大小上,您可以调整滚动视图以适应所有图表。用于绘制piechart的my uiview类。。我既没有错误也没有图表听起来这只是你的
PieChart
中的一个基本问题。我会检查
viewDidLoad
,确保你的
frame
设置正确,等等。如果这不起作用,你可能想编辑你的问题,包括一些相关的
PieChart
代码(特别是
viewDidLoad
和你使用的
init
方法),我们可能会提供更多建议。在没有代码的情况下,我们无法提供任何建议。另一件事可以尝试:为
PieChart
UIScrollView
对象设置不同的
backgroundColor
属性,以查看它们的显示位置。我尝试使用
PieChart*chart=[[PieChart alloc]init];[滚动视图添加子视图:图表]但没有运气:[图表设置框架:CGRectMake(100100200200)];它还没有框架。这将把图表设置在坐标(100100)上,大小为200x200Yep,或者
initWithFrame
而不是
init
,然后
setFrame
Yep,我还建议指定图表本身的背景色,以查看其基本视图是否显示。谢谢你的代码,但是我们可能需要
PieChart
本身的初始化代码,而不是视图控制器的初始化代码。啊,对不起,我是新手,我不知道。。我很快就会做到的。。Cheeset可能与此无关,但这有点让人困惑,因为你有一个
IBOutlet
用于
m\u piechart
(然后,您有一个
@属性
,对于该属性,您无法指定
IBOutlet
,并且没有指定为
…同样,如果您在IB中执行此操作,请确保将
PieChart
指定为视图的类),然后您不使用它,而是以编程方式创建它。您应该执行其中一个操作(界面生成器或编程方式),但不是两者都有。是的,你是对的。我想手动完成这项工作,后来我决定以编程方式完成。这就是为什么IBOutlet仍然存在的原因。。