• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 如何在 UIScrollView 的中心获取按钮?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 07:42:36 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我在我的 ScrollView 中生成多个按钮, ScrollView 在 main.storyboard 有约束,因此它的宽度在不同的 iphone 上会发生变化。我不能让我的按钮到中心。这是我的代码。

@synthesize table,scroll;
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.  
img = @[@"Shirley-Stevens.jpg"];

NSUInteger i;
int buttonWidth=50;
int buttonHeight=50;
int space = 50;
//    int xCoord= 100;// (scroll.frame.size.width/2) - buttonWidth - space;
//    int Xcoord2= 200;//(scroll.frame.size.width/2) + buttonWidth + space;

int xCoord = (scroll.contentSize.width/2) + buttonWidth + space + buttonWidth + space;
int Xcoord2= (scroll.contentSize.width/2) + buttonWidth + space;
int yCoord=0;
int buffer = 10;
for (i = 1; i <= 100; i++)
{
    UIButton *aButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [aButton setBackgroundImage:[UIImage imageNamed:[img objectAtIndex:0]]forState:UIControlStateNormal];
    aButton.frame     = CGRectMake(xCoord, yCoord,buttonWidth,buttonHeight );
    [aButton addTarget:self actionselector(whatever forControlEvents:UIControlEventTouchUpInside];
    [scroll addSubview:aButton];

    UIButton *bButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [bButton setBackgroundImage:[UIImage imageNamed:[img objectAtIndex:0]]forState:UIControlStateNormal];
    bButton.frame     = CGRectMake(Xcoord2, yCoord,buttonWidth,buttonHeight );
    [bButton addTarget:self actionselector(whatever forControlEvents:UIControlEventTouchUpInside];
    [scroll addSubview:bButton];

    yCoord += buttonHeight + buffer;
}
[scroll setContentSize:CGSizeMake(300, yCoord)];
}

- (IBAction)whateverUIButton *)sender {
NSLog(@"Button");
}



Best Answer-推荐答案


这是我的代码现在可以正常工作,基本上问题是,在 ScrollView 的参数更新之前调用了 viewDidLoad。所以练习scrollview最好的方法就是viewDidAppear。

@synthesize table,scroll;
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
img = @[@"Shirley-Stevens.jpg",
         @"Shirley-Stevens.jpg"];
}

- (void)viewDidAppearBOOL)animated {
[super viewDidAppear:animated];
NSUInteger i;
int buttonWidth=50;
int buttonHeight=50;
int space = 50;
int xCoord  = (scroll.frame.size.width/2) - buttonWidth - space;
int Xcoord2 = (scroll.frame.size.width/2) + space;
int yCoord=0;
int buffer = 10;
for (i = 1; i <= 100; i++)
{
    UIButton *aButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [aButton setBackgroundImage:[UIImage imageNamed:[img objectAtIndex:0]]forState:UIControlStateNormal];
    aButton.frame     = CGRectMake(xCoord, yCoord,buttonWidth,buttonHeight );
    [aButton addTarget:self actionselector(whatever forControlEvents:UIControlEventTouchUpInside];
    [scroll addSubview:aButton];

    UIButton *bButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [bButton setBackgroundImage:[UIImage imageNamed:[img objectAtIndex:0]]forState:UIControlStateNormal];
    bButton.frame     = CGRectMake(Xcoord2, yCoord,buttonWidth,buttonHeight );
    [bButton addTarget:self actionselector(whatever forControlEvents:UIControlEventTouchUpInside];
    [scroll addSubview:bButton];

    yCoord += buttonHeight + buffer;
}
[scroll setContentSize:CGSizeMake(300, yCoord)];
}


- (IBAction)whateverUIButton *)sender {
NSLog(@"Button");
}

关于ios - 如何在 UIScrollView 的中心获取按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30588258/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap