小编el-*_*lor的帖子

iOS - 使用Autolayout为UILabel设置最大宽度

我有一个UILabel包含在UIView固定大小的内容.在UILabel具有动态文本.我怎样才能确保UILabel永远不会比包含UIView更大?

在使用之前AutoLayout,通过简单地使用AdjustsFontSizeToFitWidth它就可以很容易地实现,但我无法再使用Autolayout了.

我应该从增加什么约束上UILabelUIView?现在它只是领先对齐.

uiview uilabel ios autolayout

7
推荐指数
1
解决办法
8156
查看次数

从Localizable.strings中删除未使用的资源

我正在使用BartyCrouch来维护最新的本地化项目.我的项目目前翻译成4种不同的语言,我将添加一些新的语言.我的问题是我的基本Localizable.strings文件有大约200-300个资源,即使项目中当前使用的可能少于100个.

我正在寻找删除项目中未引用的本地化字符串的最佳方法,同时保留当前本地化的值.有没有本机解决方案或我必须使用第三方?如果是这样,有什么自动的吗?

xcode localization localizable.strings

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

UISearchController searchBar在第一次单击时消失

我在TableView中实现了一个UISearchController,由一个导航控制器推送.

首先我的问题是每当我点击SearchBar时,它就会消失.当我输入一些文本时,它可以工作,但它保持完全空白.然后我设法使用此代码半解决问题:

- (void)searchForText:(NSString*)searchText
{
    [self.view addSubview:villeSearchController.searchBar];
}
Run Code Online (Sandbox Code Playgroud)

哪个半工作因为现在,当我点击搜索栏时,它会消隐,但是如果我输入一个字符,它会再次出现,然后它就会停留在那里,无论如何.直到我取消搜索,然后再次点击它,在这种情况下它会消隐.我做了一些测试,并在第一次点击时调用此方法(searchForText),因此这不是原因.

有谁知道我如何解决这个问题并让搜索栏从第一次点击出现?

编辑:

这是我初始化SearchController的方法:

villeSearchController = [[UISearchController alloc]   initWithSearchResultsController:nil];
villeSearchController.searchResultsUpdater = self;
villeSearchController.dimsBackgroundDuringPresentation = NO;
villeSearchController.searchBar.delegate = self;
villeTableView.tableHeaderView = villeSearchController.searchBar;
villeSearchController.searchBar.scopeButtonTitles = @[];
self.definesPresentationContext = YES;
[villeSearchController.searchBar sizeToFit];
Run Code Online (Sandbox Code Playgroud)

uisearchbar tableview ios uisearchcontroller

4
推荐指数
2
解决办法
6356
查看次数

iOS-没有互联网连接的CLGeocoder

CLGeocoder用来在地图上定位地址,并计算用户与整个地址的距离。

这是使用的部分代码CLGeocoder

CLGeocoder *geocoder = [[CLGeocoder alloc] init];
__block float distance;
__block CLLocation *location;
[geocoder geocodeAddressString:adresseFinal completionHandler:^(NSArray *placemarks, NSError *error) {
    if ([placemarks count] > 0) {
        CLPlacemark *placemark = [placemarks objectAtIndex:0];
        location = placemark.location;
        CLLocationCoordinate2D coordinate = location.coordinate;
        distance = [userLocation distanceFromLocation:location];
        [distanceArray addObject:[NSString stringWithFormat:@"%f", distance]];
        MKPointAnnotation *point = [[MKPointAnnotation alloc] init];
        point.coordinate = coordinate;
        point.title = tableNoms[i];
        NSMutableArray *coords = [[NSMutableArray alloc] init];
        [coords addObject:location];
        [coords addObject:userLocation];
        [self.mapView addAnnotation:point];
    }
    dispatch_group_leave(group);
}];
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试在没有互联网连接的情况下使用它时,出现以下错误:

无法确定当前的国家/地区代码:错误域= …

ios clgeocoder

3
推荐指数
1
解决办法
905
查看次数

iOS - 使UIImageView调整大小以适应UILabel和AutoLayout

我已经有这个问题了很长一段时间以来它让我发疯了:我有一个UILabel文本可以动态改变,我有一个UIImageView应该作为文本的背景.我希望UIImageView能够自我调整以适应UILabel的文本.

在此输入图像描述

例如,"付费"可能会成为"免费"或法语中的"付款人",后面的框应该始终调整大小.

使用Storyboard,我尝试在其顶部添加UILmageView和UILabel,并将UILabel的约束设置为UIImageView,但这最终会将UILabel的大小调整为UIImageView的大小.我无法为UIImageView设置固定的宽度或高度,因为它应该适应.

我的第二次尝试是制作UIView,将其重新分类为UIIimageView,将UILabel添加为子视图,使UIView调整大小到UILabel并以编程方式添加图像,但再次没有成功.

这样做的正确方法是什么?

objective-c uiimageview uilabel ios autolayout

3
推荐指数
1
解决办法
1149
查看次数

iOS - 具有多个UILabel和UIImage动态大小的Autolayout

这是我的情况.我有3个不同的数据(最后忽略一个钱,它将不包括在内),如下所示:

在此输入图像描述

但是第一个数据(音乐类型)可能会更长,最终应该是这样的:

在此输入图像描述

因此,我必须遵守多个约束:音乐类型应该跟随事件类型数据,在所需的任何行上.必须包含事件类型的徽标.当然,总宽度不应大于它的超视宽度.

我根本不知道从哪里开始音乐类型和事件类型.我试过,但我不知道如何使用动态宽度的<=宽度约束.

我正在处理Storyboard.

ios autolayout

3
推荐指数
1
解决办法
524
查看次数

iOS - 在多个视图中重用完全相同的单元格设计和代码

我的应用程序中有4个不同的视图,当前显示完全相同的UITableViewCell.在我的故事板中,我有4次出现相同的单元格(这是一个非常复杂的自定义单元格),在.m文件中,我或多或少都有完全相同的代码将数据关联到UITableViewCell.

我知道这是一种错误的方法 - 维护和更新非常困难.

在故事板中集中UITableViewCell的正确方法是什么,并集中填充表的代码,以便我可以在不同的视图中重用它?

objective-c uitableview ios

3
推荐指数
1
解决办法
533
查看次数

UITableViewCell - 约束仅在重新加载后更新

我有一个自定义的UITableViewCell,其中我有一个包含多个子视图的UIView.根据具体情况,我隐藏了一些视图,并更新约束,以便父UIView仍然在我的UITableViewCell中居中.

我的问题是,由于单元格重用,这只有在没有直接显示单元格时才有效(如果单元格不是表格中首先出现的顶部单元格之一).在这种情况下,当我向下滚动,然后向上滚动时,它再次起作用.图片将帮助我解释这个:

这是第一次加载UITableView时显示的内容.第一个单元格是包含所有信息的常规单元格,第二个单元格是隐藏第一个元素的单元格.

第一种观点

当我向下滚动然后再向上时会发生这种情况.

在此输入图像描述

如你所见,这正是我想要的.约束已正确更新,但只有一旦细胞从可见屏幕消失,并再次出现.

[reviewsAndPriceView setNeedsUpdateConstraints];
[reviewsAndPriceView setNeedsLayout];
[reviewsAndPriceView layoutIfNeeded];
[self updateConstraints];
[self setNeedsUpdateConstraints];
[self setNeedsLayout];
[self layoutIfNeeded];
Run Code Online (Sandbox Code Playgroud)

各种变化,但它不起作用.有什么办法实现这个目标?

objective-c reusability uitableview ios nslayoutconstraint

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

激活/停用自动布局 NSLayoutConstraints

我有一个 UIScrollView,里面有一个 UIView,它定义了 ScrollView 的 ContentSize。在那个 ContentView 中,我有几个不同的 View,它们的宽度都相等(最大宽度),并且都与 Superview 具有成比例的高度(甚至在 UIScrollView 之上)。设置工作完美,滚动工作。

现在,如果里面没有要显示的内容,我希望能够隐藏这些 UIViews 之一,并且这样做时,我希望其他视图调整自己的大小以填充留下的空白空间。

我有一个特定 UIView 到 Superview 的高度约束,乘数为 0.3 我添加了第二个高度约束,完全相同的 UIView 到完全相同的 Superview,乘数为 0.01,但优先级较低,因此它不会' t 在运行时影响它。(我已经测试过这种情况:如果我将 0.3 乘数置于较低优先级,而将 0.01 乘数置于较高优先级,则一切都会完美地调整大小,完全符合我的要求)。

现在我在头文件中创建了两个带有连接的出口,这是我想要进行更改时使用的代码:

//DescriptionViewNormalConstraint is the 0.3 height one, with 1000 priority
        descriptionViewNormalConstraint.active = NO;
//DescriptionViewInvisibleConstraint is the 0.01 height one, with 500 priority
        descriptionViewInvisibleConstraint.active = YES;
        [self.view setNeedsLayout];
        [self.view layoutIfNeeded];
Run Code Online (Sandbox Code Playgroud)

但这不起作用。事实上,它什么都不改变。我在这里缺少什么?

xcode objective-c ios autolayout nslayoutconstraint

2
推荐指数
1
解决办法
1821
查看次数