我正在实现UIViewcontroller遏制.在下面的示例中,我在root控制器中设置了childcontrollers的帧大小.子视图显示为我设置的大小,但是当我在container1中检查其边界时,它会报告与我设置的大小不同的大小.
Rootcontroller(容器)
- (void)viewDidLoad
{
[super viewDidLoad];
self.containA = [[Container1 alloc]init];
self.containB = [[Container2 alloc]init];
self.containA.view.frame = CGRectMake(50, 50,50, 50);
self.containB.view.frame = CGRectMake(50, 50, 300, 300);
[self addChildViewController:self.containA];
[self addChildViewController:self.containB];
[self.view addSubview:self.containA.view];
Run Code Online (Sandbox Code Playgroud)
Container1
-(void)viewDidLoad {
[super viewDidLoad];
UIView *view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
//[self.view addSubview:view];
self.view = view;
self.view.backgroundColor = [UIColor redColor];
[view release];
NSLog(@"view dims %f %f",self.view.bounds.size.width,self.view.bounds.size.height);
}
Run Code Online (Sandbox Code Playgroud)
容器1视图中的控制台输出变暗768.000000 1004.000000
我认为这个问题与将视图框设置为UIScreen主屏幕] applicationFrame有关.因此,我删除了所有这些代码,以便自动创建uiview.问题仍然存在..
我在客观的C++中工作.我坚持的问题是我需要将std :: vector传递给目标c方法.这可能吗?下面是我当前的代码,我必须在向量定义方法中对向量进行计算(向数组成员添加偏移值),然后再将该方法作为C数组传递给该方法.理想情况下,我想在第二种方法中设置偏移值,从而拆分定义(将有几个)偏移量将是变量,与下面的示例不同.
因此,我想使用矢量而不是传入(b2Vec2*)vect
- (void)createterrain1 {
using namespace std;
vector<b2Vec2>vecVerts;
vector<int>::size_type i;
vecVerts.push_back(b2Vec2(-1022.5f / 100.0, -20.2f / 100.0));
vecVerts.push_back(b2Vec2(-966.6f / 100.0, -18.0f / 100.0));
vecVerts.push_back(b2Vec2(-893.8f / 100.0, -10.3f / 100.0));
vecVerts.push_back(b2Vec2(-888.8f / 100.0, 1.1f / 100.0));
vecVerts.push_back(b2Vec2(-804.0f / 100.0, 10.3f / 100.0));
vecVerts.push_back(b2Vec2(-799.7f / 100.0, 5.3f / 100.0));
vecVerts.push_back(b2Vec2(-795.5f / 100.0, 8.1f / 100.0));
vecVerts.push_back(b2Vec2(-755.2f/ 100.0, -9.5f / 100.0));
vecVerts.push_back(b2Vec2(-632.2f / 100.0, 5.3f / 100.0));
vecVerts.push_back(b2Vec2(-603.9f / 100.0, 17.3f / 100.0));
vecVerts.push_back(b2Vec2(-536.0f / 100.0, 18.0f / 100.0));
vecVerts.push_back(b2Vec2(-518.3f / …Run Code Online (Sandbox Code Playgroud)