相关疑难解决方法(0)

你如何使用NSAttributedString?

多种颜色NSStringNSMutableStrings不可能.所以我听说过一些关于iPad SDK 3.2(或3.2左右)NSAttributedString引入的内容,并且可以在iPhone SDK 4.0 beta版iPhone上获得.

我想要一个有三种颜色的字符串.

我不使用3个单独的NSStrings的原因是因为三个NSAttributedString子串中的每个子串的长度经常变化,所以我更喜欢,不使用任何计算来重新定位3个单独的NSString对象.

如果可以使用NSAttributedString我如何进行以下操作 - (如果不能使用NSAttributed字符串,你会怎么做):

替代文字

编辑: 请记住,@"first",@"second"@"third"会在任何时间其他字符串替换.因此,使用硬编码的NSRange值将不起作用.

textcolor nsattributedstring ios4 ios

305
推荐指数
7
解决办法
23万
查看次数

如何调整superview的大小以适应autolayout的所有子视图?

我对自动布局的理解是,它采用超视图的大小,并以约束和内在大小为基础计算子视图的位置.

有没有办法扭转这个过程?我想在约束和内在大小的基础上调整superview的大小.实现这一目标的最简单方法是什么?

我有在Xcode中设计的视图,我用它作为标题UITableView.该视图包括标签和按钮.标签的大小因数据而异.根据约束条件,标签成功按下按钮,或者如果按钮和superview底部之间存在约束,则标签将被压缩.

我找到了一些类似的问题,但他们没有很好的答案.

uitableview ios autolayout

141
推荐指数
2
解决办法
10万
查看次数

iOS7 UITextView contentsize.height替代方案

我正在将一个应用程序从iOS 6.1移植到iOS 7.我正在使用一个布局,其中有一个UITextView具有固定宽度,但它的高度基于其内容.对于iOS 6.1,检查contentsize.height并将其设置为textview的帧高度就足够了,但它在iOS 7上不起作用.

然后,我如何UITextView根据它显示的文本创建一个固定宽度,但动态高度?

注意:我是从代码创建这些视图,而不是使用Interface Builder.

uitextview ios ios7

78
推荐指数
4
解决办法
6万
查看次数

UITableViewCell,具有动态高度的UITextView

我需要制作一个UITableViewCell包含大量文本的内容.我知道我可以添加UITextView到我的单元格,但每个条目都不会有相同数量的文本.

我知道我可以控制UITableViewCellwith 的高度:-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath,但那不是我想要的.

场景1:

 ---------------
| First Cell    |
 ---------------
 ---------------
| Second Cell   |
| with some     |
| text.         |
 ---------------
 ---------------
| Third Cell    |
 ---------------
Run Code Online (Sandbox Code Playgroud)

场景2:

 ---------------
| First Cell    |
 ---------------
 ---------------
| Second Cell   |
| with some     |
| more text and |
| an unknown    |
| cell height.  | 
 ---------------
 ---------------
| Third Cell    |
 ---------------
Run Code Online (Sandbox Code Playgroud)

iphone uitableview uitextview ios

28
推荐指数
2
解决办法
2万
查看次数

在键入时调整包含UITextView的UITableViewCell

我有一个包含自定义单元格的UITableViewController.每个单元格都是使用nib创建的,并包含一个不可滚动的UITextView.我在每个单元格中添加了约束,以便单元格将其高度调整为UITextView的内容.所以最初我的控制器看起来像这样:

初始状态

现在我希望当用户在单元格中键入内容时,其内容会自动适应.这个问题已被多次询问,特别是这里第二个答案.因此,我在代码中编写了以下代理:

- (BOOL) textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString*)text {
    [self.tableView beginUpdates];
    [self.tableView endUpdates];
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

然而,它会导致以下奇怪的行为:忽略所有约束,并且所有单元格高度都会崩溃到最小值.见下图:

错误的行为

如果我向下滚动tableView以强制进行新的cellForRowAtIndexPath调用,我将恢复单元格的正确高度:

正确的行为

请注意,我并没有如我所料的autoLayout来照顾这实现heightForRowAtIndexPath.

有人能告诉我我做错了什么或帮助我吗?非常感谢你 !

cocoa-touch uitableview uitextview ios autolayout

19
推荐指数
3
解决办法
2万
查看次数

动态增加UILabel和TableView Cell的高度?

我有一个UITableView,我在其中显示一个自定义单元格.我的单元格我有两个标签和一个视图如下图所示.

在此输入图像描述

我像这样给了左视图的约束

物品标签限制

在此输入图像描述

中心视图约束

在此输入图像描述

正确的观点

在此输入图像描述
我使用bean类来存储两个标签的数据,并将该bean对象添加到一个数组中.我在heightForRowAtIndexPath中使用下面的代码.

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

    // Calculate a height based on a cell
    if(!self.customCell) {
        self.customCell = [self.tableView dequeueReusableCellWithIdentifier:@"thirdcell"];
    }

    // Configure the cell
    Instrument *inst=[arr_instSpecs objectAtIndex:indexPath.row];
    self.customCell.label_item.text=inst.item;
    self.customCell.label_desc.text=inst.desc;


    // Layout the cell

    [self.customCell layoutIfNeeded];

    // Get the height for the cell

    CGFloat height = [self.customCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;

    // Padding of 1 point (cell separator)
    CGFloat separatorHeight = 1;

    return height + separatorHeight;
}
Run Code Online (Sandbox Code Playgroud)

问题是标签的高度和表视图单元都没有增加.我已经解释了一切.我想在标签文本增加时增加标签的大小,并且当标签大小增加时,单元格的高度必须增加.

objective-c row-height uitableview ios swift

15
推荐指数
2
解决办法
3万
查看次数

如何在内部输入时调整UITextView的大小?

我正在创建一个评论部分,就像Facebook在iOS应用程序中使用它的消息部分一样.我希望UITextView调整高度,以便我输入的文本适合它,而不是你必须滚动才能看到溢出的文本.我有什么想法可以这样做吗?我调查了可能使用的CGRect是分配给文本视图的大小和高度,然后匹配内容大小:

CGRect textFrame = textView.frame;
textFrame.size.height = textView.contentSize.height;
textView.frame = textFrame;
Run Code Online (Sandbox Code Playgroud)

我假设我需要某种功能来检测文本何时到达边界UITextView然后调整视图的高度?有没有人在用同样的概念挣扎?

iphone uitextview ios cgrect

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

在ios 7上动态扩展UITextView

我正在使用此代码

CGRect frame = self.mytext.frame;
frame.size.height = self.mytext.contentSize.height;
self.mytext.frame = frame;
Run Code Online (Sandbox Code Playgroud)

但它在iOS 7中不起作用.有谁知道为什么或有同样的问题?

编辑:

抱歉.我制作了一个UIView,一个UITextView和一个UIScrollView,所以我可以在我的uitextview展开中加载文本.

我在viewDidLoad中使用了这段代码

CGRect frame = self.moreDetailsTextView.frame;
frame.size.height = self.moreDetailsTextView.contentSize.height;
self.moreDetailsTextView.frame = frame;

CGRect moreViewFrame =  self.moreDetailsView.frame;
moreViewFrame.size.height = frame.size.height + 270;
self.moreDetailsView.frame = moreViewFrame;

int scrollViewHeight =  moreViewFrame.size.height + 235;
self.scrollView.contentSize = CGSizeMake(320, scrollViewHeight);
Run Code Online (Sandbox Code Playgroud)

这在ios6中运行良好,但是现在使用xcode5和ios7,当我在模拟器中测试应用程序时,uitextview不会扩展.

uitextview uiview ios7

14
推荐指数
3
解决办法
3万
查看次数

适合NSDictionary的关键

有没有办法确定一个类是否适合作为键并且将按预期工作,例如我想在NSDictionary中使用NSIndexPath作为键,但我不确定两个不同的NSIndexPath实例是否具有相同的整数值将始终返回相同的哈希值.

macos cocoa cocoa-touch objective-c ios

13
推荐指数
1
解决办法
3181
查看次数

UIWebView的全部内容嵌入在UITableView中

我已经为这两天苦苦挣扎了,所以我和互联网的聪明人一起参与其中.

我正在展示一篇文章作为我的一部分UITableView.为了正确显示,我需要给代表一个单元格的高度,我希望它与UIWebView高度相同,所以我可以在WebView上禁用滚动并将整个Web内容显示为静态细胞.

我的第一种方法是在heightForRowAtIndexpath方法中渲染它,但这显然不起作用,因为我需要等待UIWebViewDelegate告诉我何时Web视图完全加载并具有高度.过了一会儿,我发现了一个工作解决方案,它使用Web视图委托在加载Web视图时刷新单元格高度.

工作正常,直到屏幕大小改变.无论是旋转还是全屏我的UISplitView.我强制对它进行更新didRotateFromInterfaceOrientation(fromInterfaceOrientation: UIInterfaceOrientation),但是这会使它闪烁大约10次然后才能进入正确的高度.我记录了这个更改,似乎WebView多次调用自身,导致循环.

曾经出现在这个日志,从我旋转屏幕开始.

每次重新加载时它会闪烁一次,正如您所看到的,它会自动重新加载一次.

所以.我需要一种在uitableview中显示整个Web视图内容的方法,并在屏幕大小更改时可靠地获取高度.如果有人以前以任何方式管理过这个,请告诉我.我会给任何可以解决这个问题的人一个赏金和我的长子,因为它让我疯了.

这是我的相关代码.

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    switch indexPath.row {
case 4:
        //Content
        print("Height for row called")
        return CGFloat(webViewHeight)
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    switch (indexPath.row){
//HTML Content View
    case 4:
        let cell = tableView.dequeueReusableCellWithIdentifier("ContentCell", forIndexPath: indexPath)
        var contentCell = cell as? ContentCell
        if contentCell == nil {
            contentCell = …
Run Code Online (Sandbox Code Playgroud)

uiwebview uitableview ios autolayout swift

11
推荐指数
1
解决办法
1023
查看次数