小编Chr*_*zor的帖子

53
推荐指数
4
解决办法
5万
查看次数

iOS自动布局:表格视图单元格的动态高度

我有一个包含一堆单元格的表视图(自定义单元格,只有其内容视图).

tableView:cellForRowAtIndexPath:我添加预定义的UIView(有几个子视图)到自定义单元格的内容视图.我之前为UIView及其子视图设置了所有约束.

最后但并非最不重要的是,我为自定义单元格(superview)的内容视图和之前添加的UIView(子视图)设置了垂直和水平约束.

约束字符串如下所示:

    H:|[view]|
    V:|[view]|
Run Code Online (Sandbox Code Playgroud)

不幸的是,我仍然获得所有表视图单元格的默认高度.我想知道是否有办法让自动布局根据内容大小自动计算高度.

row-height uitableview ios autolayout nslayoutconstraint

9
推荐指数
2
解决办法
8924
查看次数

带有iOS自动布局约束的UIScrollView:子视图的大小错误

我正在尝试在代码中生成一个视图.这是我的视图对象的层次结构

  • UIScrollView中
    • 的UIView
      • 的UIButton

ScrollView应与窗口大小相同.按钮应尽可能大.我正在使用iOS自动布局,因此我所有对象的约束字符串都是这样的

H:|[object]|
V:|[object]|
Run Code Online (Sandbox Code Playgroud)

我也为每个对象设置translatesAutoresizingMaskIntoConstraintsNO.

问题是按钮只获得默认的按钮大小.它的父视图对象(UIView)只获得其子视图所需的大小.

在此输入图像描述

红色:UIScrollView /黄色:UIView

如何强制这些视图与scrollView一样大?

当我使用UIView而不是UIScrollView时,一切都很好......

这是一些代码:

    - (void) viewDidLoad {

        [super viewDidLoad];

        // SCROLL VIEW
        UIScrollView* scrollView = [UIScrollView new];
        scrollView.backgroundColor=[UIColor redColor];
        scrollView.translatesAutoresizingMaskIntoConstraints = NO;

        //CONTAINER VIEW
        UIView *containerView = [UIView new];
        containerView.translatesAutoresizingMaskIntoConstraints = NO;
        containerView.backgroundColor = [UIColor yellowColor];
        [scrollView addSubview:containerView];

        // CONSTRAINTS SCROLL VIEW - CONTAINER VIEW
        [scrollView addConstraints:
         [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[containerView]|"
                                                 options:0 metrics:nil
                                                   views:@{@"containerView":containerView}]];
        [scrollView addConstraints:
         [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[containerView]|"
                                                 options:0 metrics:nil
                                                   views:@{@"containerView":containerView}]];

        // BUTTON
        UIButton* button = [UIButton …
Run Code Online (Sandbox Code Playgroud)

uiscrollview ios autolayout nslayoutconstraint

8
推荐指数
1
解决办法
1万
查看次数

Restkit Objective-C:发布请求仅适用一次

我正在使用Restkit与Drupal CMS进行通信.当我发送第一个请求时,一切正常:我得到了正确的JSON字符串 - >太棒了.这就是控制台所说的:

2011-06-24 23:00:48.344 MyApp [1399:207]将POST请求发送到URL http://mysite.com/myproject/services/rest/service_views/get.json.HTTP正文:view_name = viewsname

如果应用尝试再次发送相同的请求,则不会发生任何事情.没有调用任何委托方法.控制台说:

2011-06-24 23:03:40.224 MyApp [1399:207]向网址发送GET请求 http://www.mysite.com/myproject/services/rest/service_views/get.json.HTTP正文:

我正在使用特殊类(单例)中的所有Restkit内容,我将其作为视图控制器的实例变量保留.在这个类的init函数中我这样做:

RKObjectManager* objectManager = [RKObjectManager
objectManagerWithBaseURL:kBaseURLKey];
Run Code Online (Sandbox Code Playgroud)

在我的视图控制器中,我正在调用一个- (void)pollForNewData函数,它执行以下操作:

RKObjectLoader* objectLoader = [[RKObjectManager sharedManager] loadObjectsAtResourcePath: kRessourceKey objectClass:[RKNotification class] delegate:self]; 
objectLoader.method = RKRequestMethodPOST;
objectLoader.params = [NSDictionary dictionaryWithKeysAndObjects: @"view_name", @"viewsname", nil];
[objectLoader send];
Run Code Online (Sandbox Code Playgroud)

有谁能够帮我?第一次回复后,我是否需要做一些特别的事情?是否可以取消请求(如果保留当前视图)?

iphone drupal objective-c ios restkit

5
推荐指数
1
解决办法
2456
查看次数

更新大小未知的多行 UILabel 的preferredMaxLayoutWidth(自动布局)

我有一个继承自 的自定义视图类UIView。这个类有一个UILabel作为它的子视图。在init此自定义视图类的函数中,我设置了所需的所有内容,如下所示:

//h-file
#import <UIKit/UIKit.h>

@interface MyCustomView : UIView

@property (strong, nonatomic) UILabel *myLabel;

@end

//m-file
@implementation MyCustomView

@synthesize myLabel = _myLabel;

- (id)init
{
    self = [super init];
    if (self) {

        _myLabel = [UILabel new];

        if(_textView){
            _myLabel.highlightedTextColor = [UIColor whiteColor];
            _myLabel.translatesAutoresizingMaskIntoConstraints = NO;
            _myLabel.lineBreakMode = NSLineBreakByWordWrapping;
            _myLabel.numberOfLines = 0;
            _myLabel.backgroundColor = [UIColor clearColor];
            [self addSubview:_myLabel];
        }
    }

    return self;
}

@end
Run Code Online (Sandbox Code Playgroud)

我还设置了一系列约束来管理自定义视图内的填充 - 此外,MyCustomView垂直轴和水平轴也有布局多个实例的约束。

要获得多行标签输出,我必须preferredMaxLayoutWidth设置UILabel myLabel. 宽度取决于可用空间。在 …

uilabel ios autolayout ios6

5
推荐指数
1
解决办法
3537
查看次数

在 UITextfield 中输入文本后以编程方式更改焦点

我有一个简单的视图,它有两个文本视图和一个按钮。所有控件都垂直放置。我可以使用遥控器从一个控件导航到另一个控件。但是,我正在尝试使以下场景起作用:

  1. 用户启动应用程序(焦点在第一个文本字段上)
  2. 用户输入文本字段并使用全屏键盘,然后点击“下一步”按钮
  3. 该应用程序显示第二个文本字段(全屏键盘),输入一些文本并点击“完成”按钮
  4. 应用程序离开全屏键盘并聚焦按钮

虽然步骤 1-3 是开箱即用的,但以编程方式更改焦点 (4) 不起作用。这是一些代码:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    if(textField == self.textfieldB) {
        self.activeView = self.textfieldB;
        [self setNeedsFocusUpdate];
        [self updateFocusIfNeeded];
        return YES;
    } 
    return NO;
}
Run Code Online (Sandbox Code Playgroud)

并且- (UIView *)preferredFocusedView我将返回存储在 self.activeView 中的任何内容(是的,它将返回按钮实例)。所有方法都按预期调用,但焦点不会改变。我在这里做错了什么?

提前致谢!

objective-c uikit apple-tv tvos

5
推荐指数
1
解决办法
1650
查看次数