【问题标题】:UIButtons in a UIViewUIView 中的 UIButton
【发布时间】:2010-09-24 03:04:59
【问题描述】:

我有一个 UIScrollview,其 IBOutlet 映射到 ganttScroller。这个 UIScrollView 里面有一个 UIView。我在 IB 中做了 UIView,它的宽度是 100。

然后我开始向该 UIView 添加按钮(通过 IBOutlet 滚动内容映射)

float test = [scrollContent frame].size.width;
for (int i=0; i<15; i++) {
        UIButton *showButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];  

        showButton.frame = CGRectMake(55.0 * i,  
                                        50.0,  
                                        50.0,  
                                        20.0);  
        [showButton setTitle:NSLocalizedString(@"test", @"") forStates:UIControlStateNormal];  
        [scrollContent addSubview:showButton];  
    }
    test = [scrollContent frame].size.width;
    [scrollContent sizeToFit];
    test =[scrollContent frame].size.width;

一开始我检查我的 scrollContent 的大小,它确实是 100(在调试器中检查了“测试”),添加按钮后它又是 100,在 sizeToFit 之后它仍然是 100(我期望很多更大,因为添加了所有这些按钮......按钮显示正确! 我的 gantScroller (UIScrollView) 需要正确的尺寸

怎么了?

【问题讨论】:

    标签: iphone uiview uiscrollview uibutton


    【解决方案1】:

    我不认为-[UIView sizeToFit] 实际上考虑了它的子视图。您需要简单地计算正确的宽度并将其分配给视图的框架。然后,您还需要设置滚动视图的 contentSize 属性,使其正确滚动。

    尽管容器太小,但您看到所有按钮的原因可能是 UIView 默认剪切它们的子视图。

    【讨论】:

    • 好的,谢谢,我认为 contentSize 会为我计算,我需要什么方法来计算正确的宽度?
    • 什么时候,在你的特殊情况下是CGRect frame = scrollContent.frame; frame.size.width = 14*55 + 50; scrollContent.frame = frame; scrollView.contentSize = frame.size;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多