我UIView的alpha值为.5我添加了一个alpha值为1的子视图.
子视图似乎继承了父级的alpha值.有没有办法让子视图比其父视图更不透明?
代码看起来像这样:
CGRect promptFrame = CGRectMake(55, 80, 180, 50);
UIView *inputPrompt = [[UIView alloc] initWithFrame: promptFrame];
[inputPrompt setBackgroundColor: [UIColor darkGrayColor]];
[inputPrompt setAlpha: .5];
inputPrompt.layer.cornerRadius = 8;
inputPrompt.layer.masksToBounds = YES;
CGRect fileTextFieldFrame = CGRectMake(10, 15, 150, 25);
UITextField *filePrompt = [[UITextField alloc] initWithFrame: fileTextFieldFrame];
[filePrompt setBorderStyle:UITextBorderStyleRoundedRect];
[filePrompt setClearButtonMode:UITextFieldViewModeWhileEditing];
[filePrompt setBackgroundColor: [UIColor whiteColor]];
[filePrompt setAlpha: 1];
Run Code Online (Sandbox Code Playgroud)
结果如下:

我希望能够看到灰色下方的按钮,UIView但不能看到白色下面的按钮UITextField.我该怎么做呢?
当我UIView使用transform属性(CGAffineTransformMakeRotation)旋转我时,我需要拖动它的一个角,比如说右下角,以调整它的大小.在此过程中,当用户拖动角落时,视图的角落必须跟随用户的手指,并通过增加2个边(右下角拖动的右下角)来调整框的大小.
UIView当不转换框时,可以使用框架和触摸位置来调整大小并不困难.例如,我会记住UIPanGestureRecognizer handler在StateBegan上附加到此可调整大小视图的初始帧和触摸,并且在StateChanged上,我将计算触摸点X,Y与初始触摸的差异,并将这些值添加到初始帧宽度和高度.
但是,UIView当应用变换时,帧对于旋转是可靠的.因此,我只能依靠bounds和center.我创建了这个代码,但它几乎可以工作:我只能在所有4个方向上按比例放大视图,而不是一个.
- (void)handleResizeGesture:(UIPanGestureRecognizer *)recognizer {
CGPoint touchLocation = [recognizer locationInView:self.superview];
CGPoint center = self.center;
switch (recognizer.state) {
case UIGestureRecognizerStateBegan: {
deltaAngle = atan2f(touchLocation.y - center.y, touchLocation.x - center.x) - CGAffineTransformGetAngle(self.transform);
initialBounds = self.bounds;
initialDistance = CGPointGetDistance(center, touchLocation);
initialLocation = touchLocation;
if ([self.delegate respondsToSelector:@selector(stickerViewDidBeginRotating:)]) {
[self.delegate stickerViewDidBeginRotating:self];
}
break;
}
case UIGestureRecognizerStateChanged: {
CGFloat scale = CGPointGetDistance(center, touchLocation)/initialDistance;
CGFloat minimumScale = …Run Code Online (Sandbox Code Playgroud) UIDocumentInteractionController presentOptionsMenuFromBarButtonItem 在ios8硬件中给出了一个控制台错误(而不是7.1硬件或更早版本):
Unknown activity items supplied: (
{
"com.adobe.pdf" = ;
},
""
)
在我的应用程序的官方App Store版本中,应用程序崩溃了.当我在iPad上编译并运行时,它只是给出错误但不会崩溃.
我的代码:
在.h:
UIDocumentInteractionController *docInteractionController;
Run Code Online (Sandbox Code Playgroud)
在他们中:
self.docInteractionController = [UIDocumentInteractionController interactionControllerWithURL:fileURL];
self.docInteractionController.delegate = self;
//UIBarButtonItem *element is an element in my toolbar
[self.docInteractionController presentOptionsMenuFromBarButtonItem:element animated:YES];
Run Code Online (Sandbox Code Playgroud)
如果我执行NSLogdocInteractionController.UTI,我会在控制台看到"com.adobe.pdf",因此正确识别UTI.
我可以通过使用presentOpenInMenuFromBarButtonItem而不是presentOptionsMenuFromBarButtonItem为UIDocumentInteractionController调用来解决"未知活动项目",但我想向用户显示打印和电子邮件选项,而不仅仅是外部应用程序打开选项.
在iPad 8.0.2版上测试过.Xcode版本6.0.1,部署目标6.0(也使用部署目标8.0进行测试).所有目标-c.在iPad 7.1版上运行不会产生错误.
我想在iPhone中使用Share Sheet功能在我的应用程序中共享我本地拥有的一些文件.我在a中显示文件,UIWebview当用户点击共享表时,我想显示选项(电子邮件,应用程序等)以共享显示在上面的文件UIWebView.我知道我们可以使用
func displayShareSheet(shareContent:String) {
let activityViewController = UIActivityViewController(activityItems: [shareContent as NSString], applicationActivities: nil)
presentViewController(activityViewController, animated: true, completion: {})
}
Run Code Online (Sandbox Code Playgroud)
例如,共享字符串.如何更改此代码以共享文档?
提前致谢.
我有一个使用的应用程序,auto-layout当我在iOS 7设备上运行它时,一切仍然按预期工作,但是当我在iOS 8设备上运行时,我的一些约束有点古怪.
我实际上在另一个应用程序中遇到了类似的问题,但这不是一个大问题.现在,我开始怀疑它是否是iOS 8 SDK中的一个错误,或者是否有一种新的方法来处理iOS8中我不知道的自动布局.
这是我的设置:我有UIView一个UIImageView嵌入其中.视图和图像视图都有约束将其底部,前导和后沿固定到其超级视图,常量= 0.
该UIView也有其固定到它的父顶部边缘,我必须以编程方式调整它连接到约束一个IBOutlet.它UIImageView具有第四个约束,将其高度固定到设备的高度(在我的情况下为568).
以下是我在iOS 7中期望/实现的行为:我正在尝试缩小容器视图的高度,并导致图像视图的顶部在没有宽高比变化的情况下被切断(看起来像你裁剪的那种图像的顶部关闭)...这就是我固定图像视图和底部边缘的高度的原因.
在iOS8中实际发生的事情:容器视图按预期收缩(它保持固定在侧面和底部,高度收缩).该UIImageView行为就好像它曾与cosntant == 0,而不是切断图像的顶部的顶部空间限制,整个图像逐渐缩小.由于我在AspectFit模式下有图像,因此侧面也会捏合以保持纵横比相同(但是imageView本身仍保持固定在前导,后沿和下边缘).
我该怎么做:我有一个通知,从我的代码的另一部分触发,以调整连接到IBOutlet的顶部空间约束.它调用的方法非常简单:
- (void) setTopSpaceForContainerView:(NSNotification*) notif{
containerView_TopSpace.constant = [[notif.userInfo objectForKey:kTopSpace] intValue];
[self.view setNeedsUpdateConstraints];
[self.view setNeedsLayout];
}
Run Code Online (Sandbox Code Playgroud)
其他人有类似的经历吗?我正在尝试找到一种解决方法,但iOS 8似乎决心缩小我的图像.
万分感谢!
我正在使用iOS(Swift)的谷歌地图sdk.
有谁知道如何"当我打开ViewController时,在谷歌地图上显示我的当前位置"?
实际上它就像谷歌地图应用程序.当您打开Google地图时,蓝点将显示您当前的位置.您不需要在第一次按"myLocationButton".
所以这是代码:
import UIKit
import CoreLocation
import GoogleMaps
class GoogleMapsViewer: UIViewController {
@IBOutlet weak var mapView: GMSMapView!
let locationManager = CLLocationManager()
let didFindMyLocation = false
override func viewDidLoad() {
super.viewDidLoad()
let camera = GMSCameraPosition.cameraWithLatitude(23.931735,longitude: 121.082711, zoom: 7)
let mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera)
mapView.myLocationEnabled = true
self.view = mapView
// GOOGLE MAPS SDK: BORDER
let mapInsets = UIEdgeInsets(top: 80.0, left: 0.0, bottom: 45.0, right: 0.0)
mapView.padding = mapInsets
locationManager.distanceFilter = 100
locationManager.delegate = self
locationManager.requestWhenInUseAuthorization()
// GOOGLE MAPS …Run Code Online (Sandbox Code Playgroud) 编辑07/14
正如比尔·伯吉斯在他回答的评论mentionned,这个问题是有关version 1.3的AFNetworking.这里的新人可能已经过时了.
我对iPhone开发很新,我使用AFNetworking作为我的服务库.
我正在查询的API是RESTful的,我需要发出POST请求.为此,我尝试使用以下代码:
NSDictionary *parameters = [NSDictionary dictionaryWithObjectsAndKeys:@"my_username", @"username", @"my_password", @"password", nil];
NSURL *url = [NSURL URLWithString:@"http://localhost:8080/login"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
NSLog(@"Pass Response = %@", JSON);
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
NSLog(@"Failed Response : %@", JSON);
}];
[operation start];
Run Code Online (Sandbox Code Playgroud)
此代码有两个主要问题:
AFJSONRequestOperation似乎提出了一个GET请求,而不是一个请求POST.我也尝试过这段代码:
NSDictionary *parameters = [NSDictionary dictionaryWithObjectsAndKeys:@"my_username", @"username", @"my_password", @"password", …Run Code Online (Sandbox Code Playgroud) 所以我有一个非常基本的问题.我UITableView在a中有这个view,我想使这个表的高度尽可能高,以显示表中的所有行.因此,我不希望能够滚动,我只想要显示所有行.(行数量是动态的height).
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
CGSize cellSize = [[[_stepsArray objectAtIndex:indexPath.row]content] sizeWithFont:[UIFont boldSystemFontOfSize:18.0f] constrainedToSize:CGSizeMake(528.0f, CGFLOAT_MAX)lineBreakMode:NSLineBreakByWordWrapping];
return cellSize.height;
}
Run Code Online (Sandbox Code Playgroud)
如果有20行,则表格会非常高,但如果只有1行,则会非常小,而其他内容将不会出现在19行以下.
所以我正在学习如何从屏幕外制作视图动画,以用作滑块菜单.
class ViewController: UIViewController {
@IBOutlet weak var red: UIView!
@IBOutlet weak var redHConstraint: NSLayoutConstraint!
@IBAction func buttonShift(sender: AnyObject) {
self.view.layoutIfNeeded() // **HERE**
UIView.animateWithDuration(0.5) {
self.redHConstraint.constant = 0
self.view.layoutIfNeeded() // And **HERE**
}
}
}
Run Code Online (Sandbox Code Playgroud)
我已经改编了如何使用Swift中的约束来动画UIView的代码?
1. self.view.layoutIfNeeded()部分代码有什么作用?
2.为什么在动画之前和期间编码2x?
注意:如果我注释掉第1个self.view.layoutIfNeeded()没什么变化,但是如果我注释掉第2个self.view.layoutIfNeeded()动作不再是动画并且只是出现在新坐标中.
ios ×10
objective-c ×7
swift ×4
iphone ×2
afnetworking ×1
alpha ×1
autolayout ×1
google-maps ×1
ios5 ×1
ios6 ×1
ios8 ×1
ipad ×1
json ×1
placeholder ×1
uitableview ×1
uitextfield ×1
uiview ×1
uiwebview ×1