正如它在锡上所说的那样。我正在更新应用以支持iOS 8+。 AFAIK,这在iOS 7上运行良好。在模拟器(iOS 7或8)中也可以使用。
以下是viewDidLoad中其中一个按钮的代码:
memberButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
memberButton.frame = CGRectMake(20, screenHeight - 50, 133, 24);
[memberButton setBackgroundColor:[UIColor colorWithRed:70.0/255.0 green:70.0/255.0 blue:70.0/255.0 alpha:1]];
[memberButton setBackgroundImage:[UIImage imageNamed:@"Member.png"] forState:UIControlStateNormal];
[memberButton setTintColor:[UIColor whiteColor]];
[memberButton addTarget:self action:@selector(memberButtonPressed) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:memberButton];
memberButton.hidden = NO;
memberButton.enabled = YES;
在手机上运行应用程序时,无法找到该按钮。显然,该应用程序上的内容远远多于单个按钮;你可以滚动一个图像。这可能是负责任的吗?
以下是广告样式滚动图像的代码:
pgCtr = [[UIPageControl alloc] initWithFrame:CGRectMake(160, screenHeight - 70, 0, 0)];
[pgCtr setTag:0];
pgCtr.numberOfPages=3;
pgCtr.autoresizingMask=UIViewAutoresizingNone;
[self.view addSubview:pgCtr];
for (int i=1; i<=3; i++) {
pgCtr.currentPage = i;
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"intro_%d.jpg",i]];
UIImageView *imgV = [[UIImageView alloc] initWithFrame:CGRectMake((i-1)*scr.frame.size.width, 0, scr.frame.size.width, scr.frame.size.height)];
imgV.contentMode=UIViewContentModeScaleToFill;
[imgV setImage:image];
imgV.tag=i+1;
[scr addSubview:imgV];
}
[scr setContentSize:CGSizeMake(scr.frame.size.width*3, scr.frame.size.height)];
pgCtr.currentPage = 0;
pgCtr.currentPageIndicatorTintColor = [UIColor whiteColor];
pgCtr.pageIndicatorTintColor = [UIColor grayColor];
我尝试的事情(最新的粗体):
没有显示按钮。
答案 0 :(得分:2)
请执行以下步骤 * ,了解iOS8
和设备或代码中的实际问题/位置。
不要使用动态帧检查,只需使用静态帧来显示按钮。对于例如CGRectMake(0,0,300,100)
。
如果步骤1显示按钮,那么帧计算中肯定会出现问题。
如果步骤1不起作用,请为该视图中的所有其他控件添加边框,并检查它是否位于按钮上方?
* @Zack,只有你能找到问题的答案,因为我们可以给你一些建议而不是解决方案,因为我们无权访问你的项目。最好的方法是针对每种情况继续进行反复试验。
答案 1 :(得分:1)
我想你错过了
[self.view addSubview: memberButton];
答案 2 :(得分:1)
我建议不要在-viewDidLoad
设置视图帧。该方法仅在UIViewController
生命周期中调用一次。好的做法是将-viewDidLoad
的子视图初始化为CGRectZero
作为框架,并以-viewWillLayoutSubviews
方法更新框架。
看起来像这样:
- (void)viewDidLoad {
[super viewDidLoad];
//
pgCtr = [[UIPageControl alloc] initWithFrame:CGRectZero];
/* setting properties */
}
- (void)viewWillLayoutSubviews {
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;
//
memberButton.frame = CGRectMake(20, screenHeight - 50, 133, 24);
//
pgCtr.frame = CGRectMake(160, screenHeight - 70, 0, 0);
// same for contentSize
}
尝试在-viewWillLayoutSubviews
处移动框架设置并检查问题是否仍然存在。也许这个小提示会有所帮助。
此致 阿尔乔姆
答案 3 :(得分:0)
检查滚动视图是否位于按钮顶部。更改按钮的位置,看它是否仍在那里。
答案 4 :(得分:0)
导航栏可能会弄乱您的按钮。只是尝试一下,尝试将框架设置为memberButton.frame = CGRectMake(20,screenHeight - 50 -64,133,24);
之前发生在我身上。
答案 5 :(得分:0)
我咬紧牙关,决定在故事板上添加按钮,并重新编写一些代码。令我惊讶的是,按钮终于出现了。
至于为什么我之前没有这样做,好吧,有一个很多的按钮。还有一个很多的按钮视图控制器。并且以编程方式添加所有。考虑到项目的规模,我无法独自完成这些工作,但我认为展示一些东西比什么都没有好。
所以这更像是创可贴,而不是实际的解决方案。现在,它会这样做。如果有其他人最终弄明白,那么代码就不会浪费,不要犹豫回答。