我有一个UILabel包含在UIView固定大小的内容.在UILabel具有动态文本.我怎样才能确保UILabel永远不会比包含UIView更大?
在使用之前AutoLayout,通过简单地使用AdjustsFontSizeToFitWidth它就可以很容易地实现,但我无法再使用Autolayout了.
我应该从增加什么约束上UILabel的UIView?现在它只是领先对齐.
我正在使用BartyCrouch来维护最新的本地化项目.我的项目目前翻译成4种不同的语言,我将添加一些新的语言.我的问题是我的基本Localizable.strings文件有大约200-300个资源,即使项目中当前使用的可能少于100个.
我正在寻找删除项目中未引用的本地化字符串的最佳方法,同时保留当前本地化的值.有没有本机解决方案或我必须使用第三方?如果是这样,有什么自动的吗?
我在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) 我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)
但是,当我尝试在没有互联网连接的情况下使用它时,出现以下错误:
无法确定当前的国家/地区代码:错误域= …
我已经有这个问题了很长一段时间以来它让我发疯了:我有一个UILabel文本可以动态改变,我有一个UIImageView应该作为文本的背景.我希望UIImageView能够自我调整以适应UILabel的文本.
例如,"付费"可能会成为"免费"或法语中的"付款人",后面的框应该始终调整大小.
使用Storyboard,我尝试在其顶部添加UILmageView和UILabel,并将UILabel的约束设置为UIImageView,但这最终会将UILabel的大小调整为UIImageView的大小.我无法为UIImageView设置固定的宽度或高度,因为它应该适应.
我的第二次尝试是制作UIView,将其重新分类为UIIimageView,将UILabel添加为子视图,使UIView调整大小到UILabel并以编程方式添加图像,但再次没有成功.
这样做的正确方法是什么?
这是我的情况.我有3个不同的数据(最后忽略一个钱,它将不包括在内),如下所示:
但是第一个数据(音乐类型)可能会更长,最终应该是这样的:
因此,我必须遵守多个约束:音乐类型应该跟随事件类型数据,在所需的任何行上.必须包含事件类型的徽标.当然,总宽度不应大于它的超视宽度.
我根本不知道从哪里开始音乐类型和事件类型.我试过,但我不知道如何使用动态宽度的<=宽度约束.
我正在处理Storyboard.
我的应用程序中有4个不同的视图,当前显示完全相同的UITableViewCell.在我的故事板中,我有4次出现相同的单元格(这是一个非常复杂的自定义单元格),在.m文件中,我或多或少都有完全相同的代码将数据关联到UITableViewCell.
我知道这是一种错误的方法 - 维护和更新非常困难.
在故事板中集中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)
各种变化,但它不起作用.有什么办法实现这个目标?
我有一个 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)
但这不起作用。事实上,它什么都不改变。我在这里缺少什么?
ios ×8
autolayout ×4
objective-c ×4
uilabel ×2
uitableview ×2
xcode ×2
clgeocoder ×1
localization ×1
reusability ×1
tableview ×1
uiimageview ×1
uisearchbar ×1
uiview ×1